hdu3746 KMP之next[]威武 如果让我说:我只能说,实力决定一切。
来源:互联网 发布:md5加密算法 java 编辑:程序博客网 时间:2024/06/08 14:43
本人感觉本题和hdu3336这个题很好,完全考察KMP中next[]的性质:hdu3336这个题可以做做
思路:求解最小循环节,如果题目存在最小循环节,那么输出0,否则输出你最小还应该添加多少个才满足最小循环节特征。
利用KMP的性质:①aaa,next[3]=2 最小循环节为1即:Len-2=1,满足最小循环节的要求,不需要添加数了。②abca next[4]=1 最小循环节为Len-1=3;还需要添加3-4%1=2个即:添加几个数可以被整除。
#include<iostream>#include<algorithm>#include<cstdio>#include<string.h>using namespace std;int T,Len;char map[100100];int next[100100];void get_next(char tem[]){ int k=-1; int j=0; int m=strlen(tem); next[0]=-1; while(j<m) { if(k==-1||tem[j]==tem[k]) { ++k; ++j; next[j]=k; } else k=next[k]; }}int main(){ scanf("%d",&T); while(T--) { scanf("%s",map); int Len=strlen(map); get_next(map); printf("LEN=%d\n",next[Len]); int ans=Len-next[Len];//求解最小循环节 if(ans!=Len&&Len%ans==0)//不需要补充 printf("0\n"); else printf("%d\n",ans-(Len%ans));//需要补充 } return 0;}
- hdu3746 KMP之next[]威武 如果让我说:我只能说,实力决定一切。
- hdu 3336 KMP走起 如果让我说:我只能说,实力决定一切
- poj 2752 KMP+DFS() 如果让我说:我只能说,实力决定一切
- hdu 2642 二维数组+判重 如果让我说:我只能说,实力决定一切
- hdu1301 MST+优先队列 如果让我说:我只能说,实力决定一切。
- hdu2767强连通+缩点 如果让我说:我只能说,实力决定一切
- hdu1269强连通水题 如果让我说:我只能说,实力决定一切
- poj2553强连通+缩点 如果让我说:我只能说,实力决定一切
- poj2186 强连通+缩点 如果让我说:我只能说,实力决定一切
- hdu2544 spfa 第一弹 如果让我说:我只能说,实力决定一切
- hdu 1233 kruskal+优先队列 如果让我说:我只能说,实力决定一切。
- hdu1535 spfa() 如果让我说:我只能说,实力决定一切
- hdu2112 spfa() 如果让我说:我只能说,实力决定一切
- hdu 3191 次短路+优先队列 如果让我说:我只能说,实力决定一切
- poj3463 hdu1688 次短路+优先队列 如果让我说:我只能说,实力决定一切
- hdu3339 spfa()+dp 如果让我说:我只能说,实力决定一切
- poj3974 hdu3068最长回文子串 如果让我说:我只能说,实力决定一切
- poj3321 树状数组+DFS() 如果让我说:我只能说,实力决定一切
- Android 混编 防止 反编译
- 【OpenGL】glut 消息事件处理函数 glutMainLoop();
- 很好很强大的vimrc(带注释版)
- character_set_connection 这家伙
- 字符串匹配及kmp改进算法
- hdu3746 KMP之next[]威武 如果让我说:我只能说,实力决定一切。
- Latex显示罗马数字
- FileZilla FTP服务器源代码分析06
- vs2010设置工程字符集
- Web搜索中的数学知识
- 安装findbugs(MyEclipse8.5) 检查代码
- folly (facebook opensource library)
- SQLServerDBA十大必备工具---让生活轻松点
- CSDN的处女贴