传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1355

题目大意:

1355: [Baltic2009]Radio Transmission

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 591  Solved: 390
[Submit][Status][Discuss]

Description

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

Input

第一行给出字符串的长度,1 < L ≤ 1,000,000. 第二行给出一个字符串,全由小写字母组成.

Output

输出最短的长度

Sample Input

8
cabcabca

Sample Output

3

HINT

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

Source

题解:这题就是KMP next数组的应用啦(水),最小值就是n-next[n](很容易想吧,因为可行解集为{n-next[n],n-next[next[n]]....)所以最小解显然为n-next[n];

 #include<iostream>
#include<cstring>
#include<cstdio>
#define inf 0x7fffffff
int n,ans;
int next[];
char s[];
using namespace std;
int main()
{
scanf("%d",&n);
scanf("%s",s+);
ans=;
int fix=;
for (int i=; i<=n; i++)
{
while (fix && s[fix+]!=s[i]) fix=next[fix];
if (s[fix+]==s[i]) fix++;
next[i]=fix;
}
printf("%d\n",n-next[n]);
}

最新文章

  1. MyCat源码分析系列之——SQL下发
  2. wpf 自定义圆形按钮
  3. u3d_shader_surface_shader_5
  4. C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?
  5. Android--监听ListView滚动到最底部
  6. Python:使用threading模块实现多线程编程
  7. Shapely介绍及用户手册
  8. Windows下搭建objective C开发环境
  9. Java 浅拷贝和深拷贝的理解和实现方式
  10. MYSQL之索引原理与慢查询优化
  11. 如何在linux下使用sudo命令不用输入密码
  12. flutter -------- GridView的使用
  13. Mysql报错[Warning] TIMESTAMP with implicit DEFAULT value is deprecated和Buffered warning: Changed limits
  14. java socket / No buffer space available
  15. 洛谷P4389 付公主的背包 [生成函数,NTT]
  16. 如何从零安装Mysql
  17. HTTP协议(一)[草稿版]
  18. C++中前置声明介绍
  19. 揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&amp;开源项目介绍
  20. Golang Vendor 包管理工具 glide 使用教程

热门文章

  1. ViewPager滑动标签-PagerSlidingTabStrip的使用
  2. 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
  3. 关于MyEclipse6.5 总是弹出 Update Progress(xx-xx-xx时间)的问题
  4. js 切换图片
  5. Python 函数简介之一
  6. 神经网络joone_engin模式识别示范,eclipse
  7. HDU1251-统计难题(字典树)
  8. 事件g_Events
  9. 【HighCharts系列教程】十、图例属性——legend
  10. 字符串的妙用之拼出花样的sql