poj 2406 Power Strings(KMP)
题目:http://poj.org/problem?id=2406
题意:给一个字符串,求这个字符串 能由一个子串最多组成多少次。。
next_val匹配
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 char t[1000005]; 7 int len_t,nev[1000005]; 8 int get_nextv() 9 { 10 int i=0,j=-1,x; 11 nev[0]=-1; 12 while(i<len_t) //刚开始一直纠结为什么不是len_t减1,,后来想了想是要把后面的那一个也要比较一下看是否相同。。。 13 { 14 if(j==-1||t[i]==t[j]) 15 { 16 ++i; ++j; 17 if(t[i]!=t[j]) 18 nev[i]=j; 19 else 20 nev[i]=nev[j]; 21 } 22 else 23 j=nev[j]; 24 } 25 x=len_t-j; 26 if(len_t%x==0) 27 return len_t/x; 28 else 29 return 1; 30 } 31 int main() 32 { 33 while(~scanf("%s",t)&&strcmp(t,".")!=0) 34 { 35 len_t=strlen(t); 36 cout<<get_nextv()<<endl; 37 } 38 return 0; 39 }
next匹配
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 char t[1000005]; 7 int len_t,ne[1000005]; 8 int get_next() 9 { 10 int i=0,j=-1,x; 11 ne[0]=-1; 12 while(i<len_t) 13 { 14 if(j==-1||t[i]==t[j]) 15 { 16 ++i; ++j; 17 ne[i]=j; 18 } 19 else 20 j=ne[j]; 21 } 22 x=len_t-j; 23 if(len_t%x==0) 24 return len_t/x; 25 else 26 return 1; 27 } 28 int main() 29 { 30 while(~scanf("%s",t)&&strcmp(t,".")!=0) 31 { 32 len_t=strlen(t); 33 cout<<get_nextv()<<endl; 34 } 35 return 0; 36 }
转载于:https://www.cnblogs.com/bfshm/p/3493282.html
poj 2406 Power Strings(KMP)相关推荐
- POJ 2406 Power Strings (KMP) kmp循环节
版权声明:本文为博主原创文章,未经博主允许不得转载. Power Strings Time Limit: 3000MS Memory Limit: 65536K Total Submissions ...
- ( KMP 求循环节的个数)Power Strings -- poj -- 2406
链接: http://poj.org/problem?id=2406 Power Strings Time Limit:3000MS Memory Limit:65536KB 64bi ...
- UVa455 Periodic Strings(kmp)
先计算字符串的前缀函数,字符串长度为n,如果,说明字符串是周期的,否则不是. 代码参考: OJ/Periodic Strings(kmp).java at master · wuli2496/OJ · ...
- 【POJ - 2406】Power Strings (KMP,最小循环节)
题干: Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc ...
- Power Strings POJ - 2406(求一串字符串中有多少个循环节)
题意: 有一串字符串,问求出有多少个循环节连续重复组成,即可以用KMP直接求出循环节有多少个字符组成.答案就是l/next[l](刚开始理解错题意,认为是找出最多的重复子串) 题目 Given two ...
- D - Power Strings POJ - 2406
Given two strings a and b we define ab to be their concatenation. For example, if a = "abc" ...
- poj(2406) kmp
题目链接:https://vjudge.net/problem/POJ-2406 kmp学习:https://blog.csdn.net/starstar1992/article/details/54 ...
- poj 2406 还是KMP的简单应用
记住KMP是多计算一位的.其中next[i]为不为自身的最大首尾重复子串长度. 位移j=i-next[i]可以看作是构成字符串s的字串(如果i%j==0,存在这样的构成),相应的重复次数 ...
- 【POJ2406】Power Strings(KMP)
problem 求每个字符串的最短循环子串,输出循环次数 solution 任何一个字符串的[1,Next[n]]与[n-Next[n],n]一定是匹配的. 那么如果n%(n-Next[n])==0, ...
- POJ:3461-Oulipo(KMP模板题)
原题传送:http://poj.org/problem?id=3461 Oulipo Time Limit: 1000MS Memory Limit: 65536K Description The F ...
最新文章
- Iptables 表和链之间的关系【未完成】
- 图片镂空算法集合[图](转)
- dedecms mysql 支持_安装dedecms MySQL 支持 不支持无法使用本系统 GD 支持Off解决办法...
- Adobe (Acrobat)Reader 6.0以上版本支持对有特殊权限的PDF进行添加注释,填写标单以及保存的功能。...
- python下载文件加上日期_python拷贝文件夹中特定日期内的文件
- 【机器视觉学习笔记】OpenCV C++的安装、配置及多版本共存 (VS2015)
- error C2143: syntax error : missing ‘;’ before ‘type’
- 使用idea本地运行mapreduce程序,控制台log4j日志没有打印出来,可以这样解决
- 20200504:力扣187周赛下
- 【java笔记】类/接口作为成员变量类型
- 推理机Jess、Racer、Jena 比较 (转)
- 2019swpuj2ee作业3
- 第九周项目3-输出星号图
- 60. MySQLi 扩展拾遗
- 小程序block标签配合if和else 和 动态修改标题栏
- 《概率统计》知识点(持续更新……)
- 华为NP课程笔记9-BGP 3
- 软考资料已经 ready,你get 到了吗?
- brctl 设置ip_brctl命令
- my97前端日期插件使用示例
热门文章
- 小D课堂 - 新版本微服务springcloud+Docker教程_6-03 高级篇幅之zuul常用问题分析
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_2_Stream流中的常用方法_forEach...
- Java中高级面试必问之多线程TOP50(含答案)
- ls命令输出的文件颜色
- AC日记——幸运号码 51nod 1043
- [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
- Libevent源码解析
- 推荐一款DataGridView的打印解决方案
- 在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败
- 处理了与日期相关的一些函数