| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:题目都不同In Reply To:different result on different OJ Posted by:Analgesic at 2009-08-19 09:22:52 > ZOJ: WA
> POJ: AC
>
> Is the test data different or the check program different?
>
> this is my submit:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> #include <cstdio>
> #include <cstring>
> #include <string>
> #include <iostream>
> #define MAXL 100
> using namespace std;
> int opt[MAXL+1][MAXL+1];
> string text;
> string opt_str[MAXL+1][MAXL+1];
>
> int solve(int s,int l){
> int min=2e9,temp;
> string min_str;
> if(opt[s][l]!=-1) return opt[s][l];
> if(text[s]=='('&&text[s+l-1]==')' || text[s]=='['&&text[s+l-1]==']'){
> temp=solve(s+1,l-2);
> if(temp<min){
> min=temp;
> if(text[s]=='(')
> min_str="("+opt_str[s+1][l-2]+")";
> else
> min_str="["+opt_str[s+1][l-2]+"]";
> }
> }
> if(text[s]=='('){
> temp=solve(s+1,l-1)+1;
> if(temp<min){
> min=temp;
> min_str="("+opt_str[s+1][l-1]+")";
> }
> }
> if(text[s]=='['){
> temp=solve(s+1,l-1)+1;
> if(temp<min){
> min=temp;
> min_str="["+opt_str[s+1][l-1]+"]";
> }
> }
> if(text[s+l-1]==')'){
> temp=solve(s,l-1)+1;
> if(temp<min){
> min=temp;
> min_str="("+opt_str[s][l-1]+")";
> }
> }
> if(text[s+l-1]==']'){
> temp=solve(s,l-1)+1;
> if(temp<min){
> min=temp;
> min_str="["+opt_str[s][l-1]+"]";
> }
> }
> for(int i=1;i<l;++i){
> temp=solve(s,i)+solve(s+i,l-i);
> if(temp<min){
> min=temp;
> min_str=opt_str[s][i]+opt_str[s+i][l-i];
> }
> }
> opt[s][l]=min;
> opt_str[s][l]=min_str;
> return min;
> }
> void init(){
> memset(opt,-1,sizeof(opt));
> for(int i=0;i<=text.length();++i){
> opt[i][0]=0;
> opt_str[i][0]="";
> }
> }
> int main(){
> char buffer[MAXL+2];
> while(fgets(buffer,MAXL+2,stdin)){
> text=string(buffer,buffer+strlen(buffer)-1);
> if(buffer[0]=='\n'){
> cout<<endl;
> continue;
> }
> init();
> solve(0,text.length());
> cout<<opt_str[0][text.length()]<<endl;
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator