本文主要是介绍usaco 1.3 Calf Flac(暴搜),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路是暴搜。
需要注意的地方是输入的方法,以及输出时的换行。
代码:
/*
ID: who jay
LANG: C++
TASK: calfflac
*/#include<stdio.h>
#include<string.h>
#include<math.h>int main()
{freopen("calfflac.in","r",stdin);freopen("calfflac.out","w",stdout);char s[20001]= {0},cr[20001]= {0};int i;int len;int maxlen=0,maxu,maxv,u,v,tmplen;char line[81];while(gets(line)!=NULL){strcat(s,line);cr[strlen(s)-1]=1;}len=strlen(s);for(i=0; i<len; i++){if((s[i]<'A')||(s[i]>'Z')&&(s[i]<'a')||(s[i]>'z'))continue;//奇数时u=v=i;tmplen=-1;while((u>=0)&&(v<=len-1)){if((s[u]!=s[v])&&(fabs(s[u]-s[v])!=32))break;tmplen+=2;if(tmplen>maxlen){maxlen=tmplen;maxu=u;maxv=v;}u--;v++;while((u>=0)&&((s[u]<'A')||(s[u]>'Z')&&(s[u]<'a')||(s[u]>'z')))u--;while((v<=len-1)&&((s[v]<'A')||(s[v]>'Z')&&(s[v]<'a')||(s[v]>'z')))v++;}//偶数时u=i;v=i+1;tmplen=0;while((u>=0)&&(v<=len-1)){if((s[u]!=s[v])&&(fabs(s[u]-s[v])!=32))break;tmplen+=2;if(tmplen>maxlen){maxlen=tmplen;maxu=u;maxv=v;}u--;v++;while((u>=0)&&((s[u]<'A')||(s[u]>'Z')&&(s[u]<'a')||(s[u]>'z')))u--;while((v<=len-1)&&((s[v]<'A')||(s[v]>'Z')&&(s[v]<'a')||(s[v]>'z')))v++;}}printf("%d\n",maxlen);for(i=maxu; i<=maxv; i++){printf("%c",s[i]);if(cr[i]==1) printf("\n");}if(cr[maxv]!=1) printf("\n");return 0;
}
这篇关于usaco 1.3 Calf Flac(暴搜)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!