字符串:KMP
文章平均质量分 51
skajre
这个作者很懒,什么都没留下…
展开
-
KMP
#include #include #include #include using namespace std; #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define ss(x) scanf("%d",&x) const int maxn=1000+5; char s[maxn],str[maxn]; int f[maxn]; void getf原创 2016-10-22 21:49:36 · 139 阅读 · 0 评论 -
UVA 1328 Period(KMP)
#include #include #include #include using namespace std; #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define ss(x) scanf("%d",&x) const int maxn=1000000+5; char s[maxn]; int n,f[maxn]; int main() {原创 2016-10-22 22:17:57 · 203 阅读 · 0 评论 -
POJ 2406 Power Strings(KMP循环节)
#include #include #include #include using namespace std; #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define ss(x) scanf("%d",&x) const int maxn=1000000+5; char s[maxn]; int f[maxn]; int n; int main(原创 2016-10-22 22:36:37 · 187 阅读 · 0 评论 -
KMP循环节
首先求失配函数 rep(i,1,n-1){ int j=f[i]; while(j&&s[i]!=s[j]) j=f[j]; f[i+1]=(s[i]==s[j])?j+1:0; } f数组在求解的过程中,用到了KMP的思想,当前失配了,就回溯到上一个next,请见 j=f[j] ,先说个结论,如果到位原创 2016-10-23 10:31:18 · 321 阅读 · 0 评论