Problem Description
随着人们年龄的增长更大,更聪明还是越大越愚蠢,这是一个值,相同的问题Eddy也一直在思考,由于他在非常小的时候就知道亲和串怎样推断了,可是发现,如今长大了却不知道怎么去推断亲和串了,于是他仅仅好又再一次来请教聪明且乐于助人的你来解决问题。

亲和串的定义是这种:给定两个字符串s1和s2,假设能通过s1循环移位。使s2包括在s1中,那么我们就说s2 是s1的亲和串。
 
Input
本题有多组測试数据。每组数据的第一行包括输入字符串s1,第二行包括输入字符串s2,s1与s2的长度均小于100000。

 
Output
假设s2是s1的亲和串,则输出"yes"。反之。输出"no"。每组測试的输出占一行。
 
Sample Input
  1. AABCD
  2. CDAA
  3. ASD
  4. ASDF
 
Sample Output
  1. yes
  2. no
 
Author
Eddy
 

就是把第一个串加倍后能不能包括第一个串

kmp模板

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<string>
  5. #include<algorithm>
  6. #include<cmath>
  7. #include<queue>
  8. #include<vector>
  9.  
  10. #define L(x) (x<<1)
  11. #define R(x) (x<<1|1)
  12. #define MID(x,y) ((x+y)>>1)
  13. using namespace std;
  14. #define N 200005
  15.  
  16. char a[N],b[N];
  17. int next[N];
  18.  
  19. void getfail(char *b)
  20. {
  21. int i,j;
  22. i=0,j=-1;
  23. next[0]=-1;
  24.  
  25. int len=strlen(b);
  26. while(i<len)
  27. {
  28. if(j==-1||b[i]==b[j])
  29. {
  30. i++;
  31. j++;
  32. next[i]=j;
  33. }
  34. else
  35. j=next[j];
  36. }
  37. }
  38.  
  39. int kmp(char *a,char *b)
  40. {
  41. int i,j;
  42. int lena=strlen(a);
  43. int lenb=strlen(b);
  44. i=j=0;
  45. while(i<lena)
  46. {
  47. if(j==-1||a[i]==b[j])
  48. {
  49. i++;
  50. j++;
  51. }
  52. else
  53. j=next[j];
  54.  
  55. if(j==lenb)
  56. return 1;
  57. }
  58. return 0;
  59. }
  60. int main()
  61. {
  62. int i,j;
  63. while(~scanf("%s%s",a,b))
  64. {
  65. int len=strlen(a);
  66. for(i=0;i<len;i++)
  67. a[len+i]=a[i];
  68. a[i+len]='\0';
  69.  
  70. getfail(b);
  71.  
  72. if(kmp(a,b))
  73. printf("yes\n");
  74. else
  75. printf("no\n");
  76. }
  77. return 0;
  78. }

版权声明:本文博客原创文章。博客,未经同意,不得转载。

HDU 2203 亲串(kmp)的更多相关文章

  1. HDU 2203 亲和串(KMP)

    题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=2203 题目: 亲和串 Time Limit: 3000/1000 MS (Java/Others)   ...

  2. hdu 2203亲和串 (kmp)

    #include<cstdio>#include<iostream>#include<cstring>#include<string>using nam ...

  3. hdu 2203:亲和串(水题,串的练习)

    亲和串 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. hdu 2203 亲和串

    把T串扩展成两倍   然后KMP  注意T的长度要大于P的长度 #include <iostream> #include <cstdio> #include <cstri ...

  5. HDOJ/HDU 2203 亲和串(简单的判断~Java的indexOf()方法秒)

    Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现 ...

  6. 亲串 (hdu 2203 KMP)

    亲串 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  7. HDU 2203 kmp

    http://acm.hdu.edu.cn/showproblem.php?pid=2203 亲和串 Time Limit: 3000/1000 MS (Java/Others)    Memory ...

  8. HDOJ 2203 亲和串 【KMP】

    HDOJ 2203 亲和串 [KMP] Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...

  9. HUD 2203 亲和串

    HUD 2203 亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768K (Java/Others) [题目描述 - ...

随机推荐

  1. cocos2d-x物业现场

    pushScene()和popScene()用法: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTYyNjY3MTc=/font/5a6L5L2 ...

  2. poj2761(treap入门)

    给n个数,然后m个询问,询问任意区间的第k小的数,特别的,任意两个区间不存在包含关系, 也就是说,将所有的询问按L排序之后, 对于i<j ,   Li < Lj 且 Ri < Rj ...

  3. Ubuntu常用软件推荐,图文详细说明及下载

    抛开Windows,其实在任何一款Linux发行版本中,我们都有超级大量的软件来安装,使用.这次的教程,我就以Ubuntu为例,来给大家推荐一些我认为不错的软件 声明: 1.本文提到的全部软件,都在文 ...

  4. 程序设计实践C++ 程序代写(QQ 928900200)

    程序设计实践 采用C++作为编程语言. 设计开发一个“学生信息”管理系统.该系统模拟数据库管理系统(DBMS)的功能,为用户提供数据存储.查找的能力. 该系统存储的学生信息包括: 学号.姓名.性别.语 ...

  5. Android调试优化篇

    为了开发出商业级的应用程序,大规模的測试是不可避免的,同一时候为了提高应用程序的执行速度,须要进行必要的优化.在Android中.提供了丰富的调试与优化工具供开发者应用,主要包含模拟器和目标端等两种场 ...

  6. uva 11427 - Expect the Expected(概率)

    题目链接:uva 11427 - Expect the Expected 题目大意:你每天晚上都会玩纸牌,每天固定最多玩n盘,每盘胜利的概率为p,你是一个固执的人,每天一定要保证胜局的比例大于p才会结 ...

  7. UVa 825 - Walking on the Safe Side

    题目:在一个N*M的网格中,从左上角走到右下角,有一些点不能经过,求最短路的条数. 分析:dp,帕斯卡三角.每一个点最短的就是走N条向下,M条向右的路. 到达每一个点的路径条数为左边和上面的路径之和. ...

  8. Android架构分析之LOG模块

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本:2.3.7_r1 Linux内核版本:android-goldfish-2.6.29 Andro ...

  9. 【leetCode百题成就】Gas Station解题报告

    题目: There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. ...

  10. HTML介绍JS

    首先,该脚本的链接插入HTML代码: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2h1aVRpYW5OYWlMdW8=/font/5a6L5L2T/f ...