bzoj 1355: [Baltic2009]Radio Transmission

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

Time Limit: 10 Sec  Memory Limit: 64 MB

Description

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

Input

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

Output

输出最短的长度

Sample Input

8
cabcabca

Sample Output

3

HINT

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

统计字符串的next

len-next[len]就是答案

证明:

当next[len]>len/2时

当next[len]<=len/2 时

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n;
char s[1000001];
int f[1000010];
void getnext()
{for(int i=1;i<n;i++){int j=f[i];while(j&&s[i]!=s[j]) j=f[j];f[i+1]= s[i]==s[j] ? j+1:0;}
}
int main()
{scanf("%d",&n);cin>>s;getnext();printf("%d",n-f[n]);
}

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/6484579.html

[Baltic2009]Radio Transmission相关推荐

  1. [BZOJ1355][Baltic2009]Radio Transmission

    [BZOJ1355][Baltic2009]Radio Transmission 试题描述 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最短长度是多 ...

  2. BZOJ1355: [Baltic2009]Radio Transmission

    题目大意:给出一个字符串,已知它是一个字符串S不断反复后构成的无限长的字符串的一个子串,求S的最短长度是多少. 思路:利用KMP算法,答案就是n-next[n].证明例如以下: 图太渣了... 另一种 ...

  3. 1355: [Baltic2009]Radio Transmission

    Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 958  Solved: 659 [Submit][Status][Discuss] Descripti ...

  4. bzoj1355【Baltic2009】Radio Transmission

    1355: [Baltic2009]Radio Transmission Time Limit: 10 Sec   Memory Limit: 64 MB Submit: 649   Solved:  ...

  5. 【KMP】Radio Transmission(最小循环子串)

    [KMP]Radio Transmission(最小循环子串) Description 给你一个字符串,它是由某个字符串不断自我连接形成的.但是这个字符串是不确定的,现在只想知道它的最短长度是多少. ...

  6. P4391 [BOI2009]Radio Transmission 无线传输(Kmp)

    [BOI2009]Radio Transmission 无线传输 - 洛谷https://www.luogu.com.cn/problem/P4391 #include <iostream> ...

  7. Radio Transmission

    请读者在阅读前充分理解KMP与其失配函数的意义. [BOI2009] Radio Transmission 无线传输 题目描述 给你一个字符串 s 1 s_1 s1​,它是由某个字符串 s 2 s_2 ...

  8. [bzoj1355][Baltic2009]Radio Transmission_KMP

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

  9. P4391 [BOI2009]Radio Transmission 无线传输

    呐呐呐题面 这题可以说是kmp的简化版,也就是说只用求一下next数组,答案输出为n-next[n],那么为什么呢,其实这也很好想,next[i]存储的是下标为i的前缀与从头开始最长的相同前缀的尾下标 ...

最新文章

  1. 分享一个获得Java项目经验的快速途径!
  2. 2018.1.18纪事
  3. 用matlab定义2020年元旦是星期三,如何用matlab实现某年某月某日是星期几的问题,...
  4. OpenCASCADE:Modeling Algorithms模块之制作原语Making Primitives
  5. Android adb 启动APP
  6. 十分钟搞定JeecgBoot 单体升级微服务!
  7. 机器学习任务的一般步骤
  8. 网页截图和svg模版动态生成图片Java实现
  9. 宝塔linux网络连接错误,宝塔linux面板部署防火墙后网页打不开报http564错误的解决办法...
  10. idea编辑区光标问题
  11. atmega328p引脚图_ATmega328P定时器详解
  12. 使用Java打印三角形
  13. 安卓开发-接收系统广播
  14. EasyUI TreeGrid各行调整上下位置
  15. java解密_JAVA加解密
  16. 笔记本键盘输入错乱,字母都变成数字了
  17. 3个月备战政治数学,你成功上岸了么?
  18. 电脑右击新建没有Word、Excel怎么办
  19. 位图(BMP)文件头格式及数据分析
  20. SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!

热门文章

  1. Python3 Scrapy爬取猫眼TOP100代码示例
  2. 简单介绍一下solr
  3. SQLyog连接虚拟机中docker中的mysql过程详解,并解决2003错误
  4. 解决eclipse中Mybatis框架下sql语句执行后控制台不显示日志问题
  5. C++11 auto和decltype关键字
  6. 【小米校招笔试】给定一些线段,线段有起点和终点,求这些线段的覆盖长度,重复的部分只计算一次
  7. git commit时出现unable to auto-detect email address错误
  8. php laravel组件,php – 在Laravel中为共享组件包中的文件配置
  9. U-Boot 之三 U-Boot 源码文件解析及移植过程详解
  10. Visual Studio Code (VSCode) 之 C/C++ 调试配置详解