博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1358 Period KMP
阅读量:5157 次
发布时间:2019-06-13

本文共 1279 字,大约阅读时间需要 4 分钟。

题意:求一个字符串的所有前缀是否是复制出来的。

解题思路:next 数值判断即可

解题代码:

1 // File Name: getnext.cpp 2 // Author: darkdream 3 // Created Time: 2014年09月09日 星期二 22时35分02秒 4  5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 #include
18 #include
19 #include
20 #include
21 #include
22 #include
23 #include
24 #define LL long long25 26 using namespace std;27 char str[1000004];28 int next[1000005];29 void getnext()30 {31 int len = strlen(str);32 next[0] = -1; 33 int k = -1;34 int j = 0 ;35 int sum = 0 ; 36 while(j <= len - 1)37 {38 if(k == -1 || str[j] == str[k])39 {40 ++j; 41 ++k;42 next[j] = k ;43 }44 else {45 k = next[k];46 }47 }48 /* for(int i = 0 ;i <= len; i ++)49 printf("%d ",next[i]);50 printf("\n");*/51 for(int i = 2;i <=len; i ++)52 {53 int t = (i - next[i]);54 if(i % t == 0 && i /t != 1)55 {56 printf("%d %d\n",i,i/t); 57 }58 }59 60 }61 int main(){62 int n ;63 int t = 0 ;64 while(scanf("%d",&n) != EOF,n)65 {66 t++ ;67 scanf("%s",str);68 printf("Test case #%d\n",t);69 getnext();70 printf("\n"); 71 }72 return 0;73 }
View Code

 

转载于:https://www.cnblogs.com/zyue/p/3965016.html

你可能感兴趣的文章
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
Kettle学习系列之Kettle能做什么?(三)
查看>>
Day03:Selenium,BeautifulSoup4
查看>>
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
35. Search Insert Position(C++)
查看>>
[毕业生的商业软件开发之路]C#异常处理
查看>>
一些php文件函数
查看>>
有关快速幂取模
查看>>
Linux运维必备工具
查看>>
字符串的查找删除
查看>>
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>
Codeforces Round #277 (Div. 2)
查看>>
【更新】智能手机批量添加联系人
查看>>
NYOJ-128前缀式计算
查看>>
淡定,啊。数据唯一性
查看>>
深入理解 JavaScript 事件循环(一)— event loop
查看>>