用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

POJ2752-Java(小猫非常著名,很多夫妇Byteland翻山越

2015-05-17 作者: java源代码大全举报

[java]代码库

POJ 2752
描述
小猫非常著名,很多夫妇Byteland翻山越岭,并要求新生的小猫的名字给他们的孩子。他们寻求的名字,同时寻求名声。为了摆脱这种无聊的工作,创新的小猫是一个简单但神奇的算法:


步骤1。把父亲的名字,母亲的名字,一个新的字符串。
步骤2。找到一个合适的prefix-suffix串年代(不仅是前缀,后缀的年代还)。


例子:父亲=“阿拉巴马州”,母亲=‘拉’,我们有年代=“阿拉巴马”+“la”=“alala”。潜在的年代prefix-suffix字符串{ ' a ',“阿拉巴马州”,“alala”}。给定的字符串,你能帮助小猫编写一个程序来计算可能的年代prefix-suffix字符串的长度吗?(他会谢谢你给你的宝宝一个名字:)
输入
输入包含一个测试用例的数量。每个测试用例占一行,包含上述字符串年代。


/*********************************     author   : Grant Yuan     algorithm; kmp     source   : POJ 2752	  time    ;2014/10/3 20:38 *********************************/   #include
 <iostream>
  #include
  <cstdio>
   #include
   <cstring>
    #include
    <cstdlib>
     #include#define MAX 400007using namespace std;int next[MAX];char s[MAX];int ans;int l;int sum[MAX];void get_next(){ next[0]=-1; int j=-1; int i=0; while(i
     <l){ if(j="=-1||s[j]==s[i])" {="" i++;j++;="" next[i]="j;" }="" else="" j="next[j];" }}int="" main(){="" while(~scanf("%s",s)){="" int="" j;="" memset(sum,0,sizeof(sum));="" l="strlen(s);" get_next();="" k="0;" for(int="" i="k-2;i" sum[k++]="next[i];">
      =0;--i) printf("%d ",sum[i]); printf("%d/n",l);} return 0;}
     </l){>
    </cstdlib>
   </cstring>
  </cstdio>
 </iostream>//源代码片段来自云代码http://yuncode.net
			


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...