摘要:
/* 裸地manachar */ #include #include #include #define maxn 1000010 using namespace std; int l,len[maxn]; char s[maxn],ss[maxn]; int manachar() { int ans=0; int id=-1,mx=-1; for(int i=1;i=0... 阅读全文
摘要:
#include #include #include #define maxn 1010 using namespace std; int ans,an[maxn],l1,l2,fail[maxn]; char s1[maxn],s2[maxn]; void kmp_init() { for(int i=2;i<=l2;i++) { int p=fail[... 阅读全文
摘要:
/* 无奈我改了那么久还是看的题解 首先跑一边kmp 几下ans[p]表示总共匹配到长度p的次数 这些不一定都是恰好到p 所以在处理一下 ans[p]通过处理变成 所有的匹配到长度p的次数 最后答案就是总共匹配到长度p+1的次数 - 总共匹配到长度p的次数 就是恰好匹配到长度p的次数 */ #include #include #include #define maxn 200010 usin... 阅读全文