讨论 / 自己运行没问题 为什么提交后会无输出
wang306416988 2013-07-25 15:31:00
点我顶贴 收藏 删除
有效耗时: 该状态没有记录

测试结果1: 选手程序无输出

测试结果2: 选手程序无输出

测试结果3: 选手程序无输出

测试结果4: 选手程序无输出

测试结果5: 选手程序无输出

测试结果6: 选手程序无输出

测试结果7: 选手程序无输出

测试结果8: 选手程序无输出

测试结果9: 选手程序无输出

测试结果10:选手程序无输出

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

struct

{

char st[300];

int x;

} s[5000000];

int i,n,ans;

char a[10][300],b[10][300];

int boo[100009];

char booc[100009][300];

int hash(char a[])

{

long x,len,i,sum;

x=1;len=strlen(a);

sum=0;

for (i=0;i<len;i++)

{

x=(x*131)%100007;

sum=(sum+x*a[i])%100007;

}

while (boo[sum]==1 && strcmp(a,booc[sum])!=0) sum++;

if (strcmp(a,booc[sum])==0)

{

return 1;

} else

{

boo[sum]=1;

strcpy(booc[sum],a);

}

return 0;

}

void search()

{

long i,j,len,t,f;

char tt[300];

t=0;f=1;

s[f].x=0;

strcpy(s[f].st,a[1]);

while (t<=f)

{

t++;

if (s[t].x<10)

for (i=2;i<=n;i++)

{

len=strlen(a[i]);

for (j=0;j<strlen(a[1])-len+1;j++)

{

strcpy(a[1],s[t].st);

if (strncmp(a[1]+j,a[i],len)==0)

{

strcpy(tt,a[1]+j+len);

strcpy(a[1]+j,b[i]);

strcat(a[1],tt);

if (hash(a[1])==0)

{

f++;

strcpy(s[f].st,a[1]);

s[f].x=s[t].x+1;

if (strcmp(b[1],s[f].st)==0)

{

printf("%d",s[f].x);

exit(0);

}

}

}

}

}

}

}

int main()

{

//freopen("main.in","r",stdin);

while (!feof(stdin))

{

i++;

scanf("%s%s",a[i],b[i]);

}

n=i;

hash(a[1]);

search();

printf("NO ANSWER!");

return 0;

}

#1 2bb2b2bb2@2013-07-25 15:31:00
回复 删除
我被无输出折磨了一周,后来发现,数组开太大了……调小点就行了
查看更多回复
提交回复