P4391 [BOI2009]Radio Transmission 无线传输(KMP)
2024-08-23 22:51:15
题目描述
给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.
输入输出格式
输入格式:
第一行给出字符串的长度,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 ;
}
最新文章
- RelativeLayout的位置属性总结
- 谷歌 HTML/CSS 规范 2016-12-30
- C++软件添加dump调试打印日志
- install mysql using binary and configure manu
- Hybrid框架UI重构之路:五、前端那点事儿(HTML、CSS)
- Cheatsheet: 2015 09.01 ~ 09.30
- python中的if __name__ == &#39;__main__&#39; what hell is it?
- pdfkit安装使用
- DEV界面皮肤
- 加载图片、倒计时--Columbia项目总结
- jQuery基础学习5——JavaScript方法获取页面中的元素
- POJ 3264 Balanced Lineup 简单RMQ
- 9.23 noip模拟试题
- OCR图片识别引擎
- 第七章 DAO模式
- Java注解学习笔记
- OC和Swift中的UITabBar和UINaviGationBar的适配 [UITabbar在IPad中的适配]
- 锐捷交换机配置DHCP SERVER给固定的MAC地址分配静态IP
- postman 做接口测试之学习笔记
- 车载文档记录(ROM)
热门文章
- 怎么写自己的CMakeLists.txt
- eclipse mars2在高分辨率下(macpro)图标极小的问题
- Monte Carlo Method(蒙特&#183;卡罗方法)
- Android List 排序
- 20165223《网络对抗技术》Exp4 恶意代码分析
- 全局鼠标钩子:WH_MOUSE_LL, 在【 win 10 上网本】上因为太卡,运行中丢失全局鼠标钩子
- 最大似然估计与期望最大化(EM)算法
- Evaluation of Forwarding Efficiency in NFV-Nodes Toward Predictable Service Chain Performance
- jvm 字节码执行 (二)动态类型支持与基于栈的字节码解释执行
- js根据毫米/厘米算像素px