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 |
bfs不超时,不超空间,自己测都过了谁帮我看下,给组数据?#include <stdio.h> #include <string.h> struct stteam{int n1,n3;char s[401];} team[10000]; int len1,len2,len3,h,e; char s1[201],s2[201],s3[401],N; int bfs() { int i,j,lens; char ts3[401]; memset(team,0,sizeof(team)); strcpy(team[0].s,s3); h=e=0; while (h<=e) { if (team[h].n1==len1+1) { if (strcmp(team[h].s,s2)==0) return 1; } for (i=team[h].n3;i<=len3;i++) { if (team[h].s[i]==s1[team[h].n1]) { lens=strlen(team[h].s)-1; for (j=0;j<i;j++) { ts3[j]=team[h].s[j]; } for (j=i+1;j<=lens;j++) { ts3[j-1]=team[h].s[j]; } ts3[lens]='\0'; if (strnicmp(s2,ts3,i-1)!=0&&i-1>=0) //可行性剪枝,去了交还WA continue; for (j=h+1;j<=e;j++) //状态剪重,去了有可能超空间.. { if (strcmp(ts3,team[j].s)==0) goto NEXT; } e++; team[e].n1=team[h].n1+1; team[e].n3=i; strcpy(team[e].s,ts3); //printf("%s\n",team[e].s); } NEXT:; } h++; } return 0; } int main() { int iN; //freopen("e:\\text.txt","r",stdin); scanf("%d",&N); for (iN=1;iN<=N;iN++) { scanf("%s %s %s",s1,s2,s3); len1=strlen(s1)-1; len2=strlen(s2)-1; len3=strlen(s3)-1; if (bfs()) printf("Data set %d: yes\n",iN); else printf("Data set %d: no\n",iN); } return 0; } WA的快疯了. Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator