摘要: /* 裸地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... 阅读全文
posted @ 2016-05-09 21:03 一入OI深似海 阅读(134) 评论(0) 推荐(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[... 阅读全文
posted @ 2016-05-09 18:11 一入OI深似海 阅读(145) 评论(0) 推荐(0) 编辑
摘要: /* 无奈我改了那么久还是看的题解 首先跑一边kmp 几下ans[p]表示总共匹配到长度p的次数 这些不一定都是恰好到p 所以在处理一下 ans[p]通过处理变成 所有的匹配到长度p的次数 最后答案就是总共匹配到长度p+1的次数 - 总共匹配到长度p的次数 就是恰好匹配到长度p的次数 */ #include #include #include #define maxn 200010 usin... 阅读全文
posted @ 2016-05-09 18:09 一入OI深似海 阅读(278) 评论(0) 推荐(0) 编辑