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 |
我一开始用G++这样子写的,TLE了。改成C就是204ms。Re:官方的解法In Reply To:官方的解法 Posted by:donkeyinacm at 2009-11-26 13:48:50 > #include <iostream> > > using namespace std; > > #define MAX 10010 > #define MAXL 20 > > char D[MAX][MAXL]; > int Dp; > char C[MAXL]; > > > > > > > > bool replace(char *A,char *B) > { > int l1=strlen(A); > int l2=strlen(B); > int i=0; > if(l1==l2) > { > while(i<l1&&A[i]==B[i]) > i++; > while(++i<l1) > if(A[i]!=B[i]) > return false; > }else if(l1==l2+1) > { > while(i<l2&&A[i]==B[i]) > i++; > > while(++i<l1) > if(A[i]!=B[i-1]) > return false; > }else if(l1+1==l2) > { > while(i<l1&&A[i]==B[i]) > i++; > > while(++i<l2) > if(A[i-1]!=B[i]) > return false; > }else > return false; > > return true; > } > > int main() > { > //freopen("c:/aaa.txt","r",stdin); > > Dp=0; > while(scanf("%s",D[Dp++])&&strcmp(D[Dp-1],"#")!=0) > ; > Dp--; > while(scanf("%s",C)&&strcmp(C,"#")!=0) > { > bool Found=false; > for(int i=0;i!=Dp;i++) > if(strcmp(D[i],C)==0) > { > Found=true; > break; > } > > if(Found) > printf("%s is correct\n",C); > else > { > printf("%s:",C); > for(int i=0;i!=Dp;i++) > if(replace(D[i],C)) > printf(" %s",D[i]); > printf("\n"); > } > > > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator