题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746

思路:KMP中Next数组的应用,求出最小的循环节,题目的意思是只能在字符串的后面上添加新的字符凑成两个循环节

用Next数组来求最小循环节的方法见这:http://www.cnblogs.com/wuyiqi/archive/2012/01/06/2314078.html

 #include<string.h>
#include<stdio.h>
#include<iostream>
#define N 1000005 using namespace std; int Next[N],tlen;
char T[N]; void getNext()
{
int j, k;
j = ; k = -; Next[] = -;
while(j < tlen)
{
if(k == - || T[j] == T[k])
Next[++j] = ++k;
else
k = Next[k];
}
} int main()
{
int cas,min;
scanf("%d",&cas);
while(cas--)
{
scanf("%s",T);
tlen=strlen(T);
getNext();
min=tlen-Next[tlen];
if(min==tlen)
printf("%d\n",tlen);
else if(tlen%min==)
printf("0\n");
else
printf("%d\n",min-tlen%min);
}
return ;
}

最新文章

  1. supervisor 安装、配置、常用命令
  2. Form 详细属性--2016年12月4日
  3. ARM-ContexM3/4组优先级和子优先级抢占规则
  4. S2SH CRUD 整合
  5. rabbitMQ集群部署以及集群之间同步
  6. 腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(下)
  7. CentOS搭建LAMP环境
  8. 【HDOJ】1043 Eight
  9. POJ_3009——冰球,IDS迭代加深搜索
  10. [目录][Leetcode] Leetcode 题解索引
  11. Linux查看用户数、登录用户
  12. 1--OC -- HelloWorld
  13. PAT (Advanced Level) 1014. Waiting in Line (30)
  14. Spring学习(4)---Bean基础
  15. Java中的类变量、实例变量、类方法、实例方法的区别
  16. Oracle创建新undo表空间最佳实践(包含段检查)
  17. 【新特性】JDK1.8
  18. google的protobuf简单介绍
  19. [译]ElasticSearch vs. Solr
  20. HashMap按照value排序的实现

热门文章

  1. smarty下如何将一个数保存为两位小数
  2. 在渲染前获取 View 的宽高
  3. spoj 371 Boxes
  4. log4j配置文件加载
  5. gcc 编译时 include 搜索路径
  6. 【CityHunter】游戏进度总控,及需求设计
  7. ypzl药品质量不合格数据库-excel自动排版
  8. V8 的 typeof null 返回 &quot;undefined&quot; 的 bug 是怎么回事
  9. Pandas-数据整理
  10. 基于MATLAB求解矩阵的正交补矩阵