题意就是将所给的字符串变成多个完整的循环(至少两个),然后给出最少需要添加的字符数。

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<string.h>
 4 #include<algorithm>
 5 using namespace std;
 6 const int MAXN=100010;
 7 char str[MAXN];
 8 int next[MAXN];
 9
10 void getNext(char *p)
11 {
12     int j,k;
13     j=0;
14     k=-1;
15     int len=strlen(p);
16     next[0]=-1;
17     while(j<len)
18     {
19         if(k==-1||p[j]==p[k])
20         {
21             j++;
22             k++;
23             next[j]=k;
24         }
25         else k=next[k];
26     }
27 }
28 int main()
29 {
30     int T;
31     scanf("%d",&T);
32     while(T--)
33     {
34         scanf("%s",&str);
35         getNext(str);
36         int len=strlen(str);
37         if(next[len]==0)
38         {
39             printf("%d\n",len);
40             continue;
41         }
42         int t=len-next[len];
43         if(len%t==0)printf("0\n");
44         else
45         {
46             printf("%d\n",t-len%t);
47         }
48     }
49     return 0;
50 }

转载于:https://www.cnblogs.com/cnblogs321114287/p/4334026.html

hdu 3746 kmp求循环节相关推荐

  1. hdu 3374 String Problem (字符串最小最大表示 + KMP求循环节)

    Problem - 3374 KMP求循环节. http://www.cnblogs.com/wuyiqi/archive/2012/01/06/2314078.html 循环节推导的证明相当的好,这 ...

  2. hdu 3746 kmp求循环节 下标从1开始

    长度为m[1,2...m]的模式的循环节为 m-next[m] , aaa  循环节clc为1  (clc=m-next[m]= 3-2  =1)       此时   m%clc == 0   表示 ...

  3. KMP算法求循环节,为什么能求循环节

    众所周知,KMP算法可以求最小循环节,为什么可以求循环节呢? 博主之前对KMP算法的理解不够深入,最近突然又想起来了,就深入研究了一下. KMP算法中最重要的就是next数组,next[i]表示是字符 ...

  4. hdu 4291 矩阵幂 循环节

    http://acm.hdu.edu.cn/showproblem.php?pid=4291 凡是取模的都有循环节-----常数有,矩阵也有,并且矩阵的更奇妙: g(g(g(n))) mod 109  ...

  5. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释

    题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...

  6. HDU 6740 MUV LUV EXTRA(求循环节)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6740 中文题意链接:http://acm.hdu.edu.cn/contests/contest_sh ...

  7. zzulioj 1825: 会长爱数学 (求循环节)

    1825: 会长爱数学 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 5  Solved: 1 SubmitStatusWeb Board Descr ...

  8. c语言 查找循环节起点,用C语言怎么求循环小数的循环节?

    满意答案 zybehqej 推荐于 2016.09.09 采纳率:43%    等级:8 已帮助:512人 1.判断循环的关键是在确定每位小数的时候,判断余数是否出现与之前的相同. 2.例程:int  ...

  9. C++之求循环小数循环节

    ■题目描述 :     任意分数都可以写成小数的形式,样例是有限小数或无限循环小数中的一种. ■输入描述:          两个正整数p和q,代表分子和分母. 两个正整数p和q,代表分子和分母.且1 ...

  10. HDU - 3746 Cyclic Nacklace(KMP的next数组判循环节)

    题目链接:点击查看 题目大意:现在规定想要制作一串珍珠手链,需要用到两段一模一样的字符串首位相接而成,现在给定一个字符串,问最少需要添加几个珍珠才能满足条件 题目分析:一开始以为是个简单的模拟题,但后 ...

最新文章

  1. Sci. Adv. | 新算法识别治疗肺动脉高压的候选抗癌药物
  2. Git与GitHub的使用
  3. mysql 时区设置
  4. 短代码 html,WordPress的短代码问题嵌入HTML格式
  5. SAP UI5 的 兼容性规则 Compatibility Rules
  6. mega x_[MEGA DEAL]通过Hadoop Bundle掌握大数据(91%的折扣)
  7. 《画解算法》3. 无重复字符的最长子串【python3丨简单】
  8. ARP攻击的心得体会
  9. 【转】博客美化(5)为博客或系统添加一个强大的评论系统
  10. 转【28个Unix/Linux的命令行神器-----陈皓】
  11. .php on line 0,windows启动apache提示PHP Startup: in Unknown on line 0
  12. 全面开创城市数字经济新时代
  13. 经纬度WGS84地理坐标系转换成CGCS2000坐标系步骤
  14. 消除“星期一综合症”--- 大前研一的周末时间分配术
  15. select2控件+拼音智能检索
  16. 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》观后感——不用吹爆,但值得点赞...
  17. IOS上传app store审核截图规格要求
  18. 大学生如何学习Java
  19. GoLang 单元测试打桩和 mock
  20. 超实用的视频转码器:HandBrake for Mac中文版

热门文章

  1. 趣图:SQL 版的喝椰汁,没想到吧
  2. 蓝翔改名变成“技院”了?网友评论炸了:我真的没想歪...
  3. 利用计算机系统辅助设计人员,计算机基础知识:计算机辅助设计
  4. easypoi中excel注解开关_easypoi: 入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法...
  5. mysql基础之数据库变量(参数)管理
  6. 【转】mysql数据库优化大全
  7. 这两天测试软件发现的问题
  8. 用javascript+PHP随机显示图片
  9. 通过文件结构直接生成xls文件
  10. jQuery UI =jquery-ui.js中sortable方法拖拽对象位置偏移问题