【kmp算法—最小循环节】Cyclic Nacklace HDU
来源:互联网 发布:西电人工智能学院 编辑:程序博客网 时间:2024/05/18 13:42
Think:
1知识点:kmp算法—最小循环节
2题意:输入一个原始字符串,选择在头部或者尾部添加别的字符,使得新的字符串为一个周期循环字符串,询问最小需要添加几个字符
3题意分析:求最小循环节
(1):最小循环节:cir_len = len - next[len-1]
(2):如果cir_len != len && len%cir_len == 0则不需要再添加,除此之外,添加的字符数为cir_len - len%cir_len;
vjudge题目链接
建议参考博客1-参考博主的题意分析
建议参考博客2-参考博主的代码实现
以下为Accepted代码
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int size_P = 100414;int _next[size_P];char st[size_P];void get_next(char *P, int len_P);int main(){ int T, cir_len; scanf("%d", &T); while(T--){ scanf("%s", st); int len_P = strlen(st); get_next(st, len_P); cir_len = len_P - _next[len_P-1];/*计算最小循环节长度*/ if(cir_len != len_P && len_P%cir_len == 0) printf("0\n"); else printf("%d\n", cir_len - len_P%cir_len); } return 0;}void get_next(char *P, int len_P){ int q, k; _next[0] = 0; k = 0; for(q = 1; q < len_P; q++){ while(k > 0 && P[q] != P[k]){ k = _next[k-1]; } if(P[q] == P[k]) k++; _next[q] = k; }}
阅读全文
0 0
- 【kmp算法—最小循环节】Cyclic Nacklace HDU
- 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求最小循环节)
- HDU3746 Cyclic Nacklace(KMP+最小循环节)
- HDU3746 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最小循环子串)
- 模板题 + KMP + 求最小循环节 --- HDU 3746 Cyclic Nacklace
- HDU 3746 Cyclic Nacklace KMP求字符串最小循环节长度
- D - Cyclic Nacklace HDU3746 (kmp 计算字符串最小循环节 )
- leetcode.array--33. Search in Rotated Sorted Array
- Windows下常用的100个CMD指令以及常见的操作
- 怎样判断ffmpeg接口是线程安全的?
- Can't update: no tracked branch
- Mysql-触发器
- 【kmp算法—最小循环节】Cyclic Nacklace HDU
- POJ分类很好很有层次感
- 20 个顶尖的 Python 机器学习开源项目
- EL表达式
- Python实现栈
- BRVAH__优秀的RecyclerView框架
- 《剑指offer》刷题笔记(递归和循环):斐波那契数列
- 通过Spring MVC 的自定义拦截器实现灵活的登录拦截
- 企业进销存管理系统