清明在家,闲来无事,正好zoj上有比赛,就做着玩一玩。水平很渣,只做了签到题,第二题没做出来。
题号3775-?(>_o)!,很长,一堆废话,就不贴原题了,给出链接,有兴趣的朋友可以看一看。
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5238
谷歌翻译大概明白了是什么意思,一开始没看懂“?”是要干什么,后来在群里问了问,“?”不用考虑。那么这题需要考虑的就是“_”“!”了。
代码写的很水,用c写的,自己测试功能实现,提交oj之后报sf,不知道怎么查。
#include<stdio.h>
#include<string.h>
#include<memory.h>
int main()
{
int x,i,j,m,t;
while(scanf("%d",&x)==1)
{
int p[x];
memset(p,0,sizeof(p));
for(i=0;i<=x;i++)
{
char a[2048],b[2048];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
gets(a);
t=0;
for(j=0;j<strlen(a);j++)
{
if(a[j]=='_')
{
for(m=0;m<=strlen(a);m++)
{
b[t+m]=a[m];
}
t+=strlen(a);
};
if(a[j]=='!')
{
strcat(&b[t],"Hello, world!");
t+=13;
};
}
if(strcmp(a,b)==0)
p[i]=1;
}
for(i=1;i<=x;i++)
{
if(p[i]==1)
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}
后来跟小伙伴聊的时候发现c++中有string类,相当方便。
各位如果有知道sf怎么查错的麻烦跟小弟说一下,谢谢了。