HDU 3746 Cyclic Nacklace——kmp
来源:互联网 发布:知乎电子指纹锁品牌 编辑:程序博客网 时间:2024/06/06 17:30
设最小循环节为len,则需要补充的长度为len-n%len,特殊情况特殊考虑
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5 + 10;char P[maxn];int t, n, fail[maxn];void Getfail() { fail[0] = 0; for (int i = 1, j = 0; i < n; i++) { while (j && P[i] != P[j]) j = fail[j - 1]; if (P[i] == P[j]) j++; fail[i] = j; }}int main() { scanf("%d", &t); for (int kase = 1; kase <= t; kase++) { scanf("%s", P); n = strlen(P); Getfail(); int len = n - fail[n - 1]; if (len == n) printf("%d\n", n); else { if (n % len) { printf("%d\n", len - n % len); } else printf("0\n"); } } return 0;}
阅读全文
1 0
- HDU 3746 Cyclic Nacklace——kmp
- hdu——3746Cyclic 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 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 )
- HDU-3746 Cyclic Nacklace (kmp)
- [hdu 3746] Cyclic Nacklace [kmp]
- hdu 3746 Cyclic Nacklace kmp
- 记录PHP中常用函数
- nyoj-2359 巴什博弈?(模板)
- BroadcastReceiver
- PyCharm中Python的“ ModuleNotFoundError ”
- 【BZOJ1334】【Baltic2008】Elect
- HDU 3746 Cyclic Nacklace——kmp
- MySQL AB复制
- bzoj4991: [Usaco2017 Feb]Why Did the Cow Cross the Road III
- 扩展欧几里得算法详解
- bzoj 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路(floyd)
- 接口、继承与多态
- ExpandableListView的使用(一)
- sqlserver update或者Delete误操作恢复方法---【验证】
- Hbase + Spring Aop 配置Hbase链接的开启和关闭