1355: [Baltic2009]Radio Transmission
来源:互联网 发布:成为院士 知乎 编辑:程序博客网 时间:2024/05/15 02:41
题目链接
题目大意:给你一个字符串,它是由某个字符串不断自我连接形成的长串的子串。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.
题解:根据next数组的性质,有
i%( i-next[i] )==0&&next[i] !=0 , 则说明字符串前i位循环,而且循环节长度为:i-next[i],循环次数为: i/( i-next[i])
因为不要求整除所以ans=n-next[n]
我的收获:get了next数组的循环性质,也加深了对kmp的理解
#include <iostream>#include <cstdio>using namespace std;const int M=1000005;int n,nex[M];char p[M];void get(){ for(int i=2,j=0;i<=n;i++){ while(j&&p[i]!=p[j+1]) j=nex[j]; if(p[i]==p[j+1]) j++; nex[i]=j; }}void work(){ printf("%d\n",n-nex[n]);}void init(){ cin>>n;scanf("%s",p+1); get();}int main(){ init(); work(); return 0;}
0 0
- 1355: [Baltic2009]Radio Transmission
- 1355: [Baltic2009]Radio Transmission
- 1355: [Baltic2009]Radio Transmission|Kmp
- 【BZOJ 1355】 [Baltic2009]Radio Transmission
- bzoj 1355: [Baltic2009]Radio Transmission
- BZOJ 1355 [Baltic2009]Radio Transmission
- 【Baltic2009】bzoj 1355 Radio Transmission
- BZOJ 1355 [Baltic2009]Radio Transmission
- bzoj 1355: [Baltic2009]Radio Transmission
- 【BZOJ 1355】[Baltic2009]Radio Transmission
- BZOJ 1355: [Baltic2009]Radio Transmission
- BZOJ 1355 Baltic2009 Radio Transmission KMP算法
- BZOJ 1355 [Baltic2009]Radio Transmission Hash/KMP
- 【 bzoj 1355 】 [Baltic2009]Radio Transmission - KMP
- BZOJ 1355 [Baltic2009]Radio Transmission KMP
- bzoj 1355: [Baltic2009]Radio Transmission KMP算法
- 【bzoj 1355】 [Baltic2009]Radio Transmission(kmp)
- 【bzoj 1355】[Baltic2009]Radio Transmission(kmp)
- 《Linux内核分析》-mykernel实验指导(操作系统是如何工作的)
- 微服务
- Android FrameWork学习(一)Android 7.0系统源码下载\编译
- 7744问题
- 浅谈动态规划(二)
- 1355: [Baltic2009]Radio Transmission
- 安卓中的一个轻型的数据存储方式SharedPreferences
- Struts2处理5种结果类型
- 计算机基础知识——计算机组成原理(二):数据的机器层次表示
- pentaho 启动服务端
- 自由技艺:个体必备的三个软实力
- 红黑树详解---彻底搞懂红黑树
- JAVSE--02-成员变量和局部变量的区别(理解)
- lucene的基本使用