题目描述

给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.

输入输出格式

输入格式:

第一行给出字符串的长度,1 < L ≤ 1,000,000.

第二行给出一个字符串,全由小写字母组成.

输出格式:

输出最短的长度

输入输出样例

输入样例#1:

8
cabcabca 输出样例#1:
3

说明

对于样例,我们可以利用"abc"不断自我连接得到"abcabcabc",读入的cabcabca,是它的子串.

求一下kmp的前缀数组,不难发现,前几项都是0后面是1 2 3 ...所以有 len-p[len]为得数

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<ctime>
using namespace std;
const int maxn = + ;
int p[maxn];
char A[maxn];
int main()
{
int len;
cin>>len;
scanf("%s",A+);
p[]=;
int j();
for(int i=;i<len;i++)
{
while(j && A[i+]!=A[j+]) j=p[j];
if(A[j+]==A[i+]) j++;
p[i+]=j;
}
cout<<len-p[len]<<endl;
return ;
}
 

最新文章

  1. RelativeLayout的位置属性总结
  2. 谷歌 HTML/CSS 规范 2016-12-30
  3. C++软件添加dump调试打印日志
  4. install mysql using binary and configure manu
  5. Hybrid框架UI重构之路:五、前端那点事儿(HTML、CSS)
  6. Cheatsheet: 2015 09.01 ~ 09.30
  7. python中的if __name__ == &#39;__main__&#39; what hell is it?
  8. pdfkit安装使用
  9. DEV界面皮肤
  10. 加载图片、倒计时--Columbia项目总结
  11. jQuery基础学习5——JavaScript方法获取页面中的元素
  12. POJ 3264 Balanced Lineup 简单RMQ
  13. 9.23 noip模拟试题
  14. OCR图片识别引擎
  15. 第七章 DAO模式
  16. Java注解学习笔记
  17. OC和Swift中的UITabBar和UINaviGationBar的适配 [UITabbar在IPad中的适配]
  18. 锐捷交换机配置DHCP SERVER给固定的MAC地址分配静态IP
  19. postman 做接口测试之学习笔记
  20. 车载文档记录(ROM)

热门文章

  1. 怎么写自己的CMakeLists.txt
  2. eclipse mars2在高分辨率下(macpro)图标极小的问题
  3. Monte Carlo Method(蒙特&#183;卡罗方法)
  4. Android List 排序
  5. 20165223《网络对抗技术》Exp4 恶意代码分析
  6. 全局鼠标钩子:WH_MOUSE_LL, 在【 win 10 上网本】上因为太卡,运行中丢失全局鼠标钩子
  7. 最大似然估计与期望最大化(EM)算法
  8. Evaluation of Forwarding Efficiency in NFV-Nodes Toward Predictable Service Chain Performance
  9. jvm 字节码执行 (二)动态类型支持与基于栈的字节码解释执行
  10. js根据毫米/厘米算像素px