hdu 3746 Cyclic Nacklace(求最少添加几个字符使得字符串是由n(n>=2)个循环节组成的)
来源:互联网 发布:淘宝有哪些好的布料店 编辑:程序博客网 时间:2024/05/22 13:24
代码:
#include<cstdio>#include<cstring>using namespace std;char a[100005];int next[100005];int LCPS[100005];int n,m;void GetLCPS(){ int j=0; int k=-1; int len=strlen(a); next[0]=-1; while(j<len) { if(k==-1||a[k]==a[j]) { LCPS[j++]=++k; next[j]=k; } else { if(k-1>=0) k=LCPS[k-1]; else k=-1; } }}int main(){ int t; scanf("%d",&t); while(t--) { //scanf("%s",b); scanf("%s",a); GetLCPS(); int len=strlen(a); int cir=len-next[len]; if(cir==1) { printf("0\n"); continue; } int r=len%cir; if(len==cir) { printf("%d\n",cir); continue; } if(r==0) { printf("0\n"); continue; } printf("%d\n",cir-r); } return 0;}
0 0
- hdu 3746 Cyclic Nacklace(求最少添加几个字符使得字符串是由n(n>=2)个循环节组成的)
- (KMP 1.4)hdu 3746 Cyclic Nacklace(使用next数组来求循环节的长度——求一个字符串需要添加多少个字符才能使该字符串的循环节的个数>=2)
- 【HDU3746】【KMP】Cyclic Nacklace 最少添加字符数使得原串出现循环节
- HDU - 3746 Cyclic Nacklace (KMP求循环节)
- hdu 3746 Cyclic Nacklace (kmp求最小循环节)
- HDU 3746 Cyclic Nacklace (kmp求循环节)
- HDU 3746 Cyclic Nacklace kmp求字符串的循环节长度
- HDU 3746 Cyclic Nacklace(KMP 最少需要在结尾后面补几个字符才能凑成两个循环)
- 【HDU 3746】 Cyclic Nacklace 【KMP 求添加最小的个数使串循环】
- [KMP-求循环节]HDU 3746 Cyclic Nacklace
- hdu 3746 Cyclic Nacklace (KMP求最小循环节)
- hdu 3746 Cyclic Nacklace(KMP求循环节)
- HDU 3746 Cyclic Nacklace(kmp求循环节)
- HDU-3746-Cyclic Nacklace【KMP求循环节】【经典题】
- 【hdu 3746】 Cyclic Nacklace KMP求循环节
- HDU 3746 Cyclic Nacklace (求最小循环节)
- HDU 3746 Cyclic Nacklace (KMP求循环结)
- HDU-3746 Cyclic Nacklace(KMP求循环)
- hdfs 客户端挂载,集群间复制
- Android ListView 详解
- Material Design之Snackbar
- 20150803-URL
- cocos2d-x ClippingNode
- hdu 3746 Cyclic Nacklace(求最少添加几个字符使得字符串是由n(n>=2)个循环节组成的)
- 格式化输出 simpleDateFormat 、正则表达式 pattern 和异常
- synchronized 及 线程通信
- Amazon EC2 Container Service笔记
- MySQL性能优化
- 函数参数异同(值传递、指针传递、引用传递)
- windows环境配置groovy
- 简单理解ThreadLocal
- 0-1背包