题目: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)相关推荐

  1. POJ 2406 Power Strings (KMP) kmp循环节

    版权声明:本文为博主原创文章,未经博主允许不得转载. Power Strings Time Limit: 3000MS   Memory Limit: 65536K Total Submissions ...

  2. ( KMP 求循环节的个数)Power Strings -- poj -- 2406

    链接: http://poj.org/problem?id=2406 Power Strings Time Limit:3000MS     Memory Limit:65536KB     64bi ...

  3. UVa455 Periodic Strings(kmp)

    先计算字符串的前缀函数,字符串长度为n,如果,说明字符串是周期的,否则不是. 代码参考: OJ/Periodic Strings(kmp).java at master · wuli2496/OJ · ...

  4. 【POJ - 2406】Power Strings (KMP,最小循环节)

    题干: Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc ...

  5. Power Strings POJ - 2406(求一串字符串中有多少个循环节)

    题意: 有一串字符串,问求出有多少个循环节连续重复组成,即可以用KMP直接求出循环节有多少个字符组成.答案就是l/next[l](刚开始理解错题意,认为是找出最多的重复子串) 题目 Given two ...

  6. D - Power Strings POJ - 2406

    Given two strings a and b we define ab to be their concatenation. For example, if a = "abc" ...

  7. poj(2406) kmp

    题目链接:https://vjudge.net/problem/POJ-2406 kmp学习:https://blog.csdn.net/starstar1992/article/details/54 ...

  8. poj 2406 还是KMP的简单应用

    记住KMP是多计算一位的.其中next[i]为不为自身的最大首尾重复子串长度.        位移j=i-next[i]可以看作是构成字符串s的字串(如果i%j==0,存在这样的构成),相应的重复次数 ...

  9. 【POJ2406】Power Strings(KMP)

    problem 求每个字符串的最短循环子串,输出循环次数 solution 任何一个字符串的[1,Next[n]]与[n-Next[n],n]一定是匹配的. 那么如果n%(n-Next[n])==0, ...

  10. POJ:3461-Oulipo(KMP模板题)

    原题传送:http://poj.org/problem?id=3461 Oulipo Time Limit: 1000MS Memory Limit: 65536K Description The F ...

最新文章

  1. Iptables 表和链之间的关系【未完成】
  2. 图片镂空算法集合[图](转)
  3. dedecms mysql 支持_安装dedecms MySQL 支持 不支持无法使用本系统 GD 支持Off解决办法...
  4. Adobe (Acrobat)Reader 6.0以上版本支持对有特殊权限的PDF进行添加注释,填写标单以及保存的功能。...
  5. python下载文件加上日期_python拷贝文件夹中特定日期内的文件
  6. 【机器视觉学习笔记】OpenCV C++的安装、配置及多版本共存 (VS2015)
  7. error C2143: syntax error : missing ‘;’ before ‘type’
  8. 使用idea本地运行mapreduce程序,控制台log4j日志没有打印出来,可以这样解决
  9. 20200504:力扣187周赛下
  10. 【java笔记】类/接口作为成员变量类型
  11. 推理机Jess、Racer、Jena 比较 (转)
  12. 2019swpuj2ee作业3
  13. 第九周项目3-输出星号图
  14. 60. MySQLi 扩展拾遗
  15. 小程序block标签配合if和else 和 动态修改标题栏
  16. 《概率统计》知识点(持续更新……)
  17. 华为NP课程笔记9-BGP 3
  18. 软考资料已经 ready,你get 到了吗?
  19. brctl 设置ip_brctl命令
  20. my97前端日期插件使用示例

热门文章

  1. 小D课堂 - 新版本微服务springcloud+Docker教程_6-03 高级篇幅之zuul常用问题分析
  2. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_2_Stream流中的常用方法_forEach...
  3. Java中高级面试必问之多线程TOP50(含答案)
  4. ls命令输出的文件颜色
  5. AC日记——幸运号码 51nod 1043
  6. [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
  7. Libevent源码解析
  8. 推荐一款DataGridView的打印解决方案
  9. 在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败
  10. 处理了与日期相关的一些函数