kmp
Clove_unique
All that you have lost can be won back bit by bit as long as you wish for it.
展开
-
KMP 模板
人生最遗憾的莫过于,轻易地放弃了不该放弃的,固执地坚持了不该坚持的。原创 2016-02-19 16:31:53 · 708 阅读 · 0 评论 -
[poj3461]Oulipo(kmp)
曲终未必人散,有情自会相逢。原创 2016-02-19 16:28:19 · 601 阅读 · 0 评论 -
[poj2752]Seek the Name, Seek the Fame(KMP)
一人花开,一人花落,这些年从头到尾,无人问询。原创 2016-02-19 17:04:14 · 575 阅读 · 0 评论 -
[BZOJ3620]似乎在梦中见过的样子(kmp)
题目描述传送门题目大意:给出一个字符串,求有多少个子串满足是A+B+A的形式,其中|A|>=k,|B|>=1。题解做这道题之前就已经知道了资瓷O(n2)O(n^2)的kmp 然后就对于字符串的每一个后缀求一次失配,然后建出fail树,一个点产生贡献的条件是它到根的路径上存在一个点离根的距离>=k,且2*长度<这个点 那么每一个点保存一下满足条件的最小的点,每一个点从父亲转移过来狂卡一波常数…原创 2017-04-17 21:31:13 · 1609 阅读 · 0 评论 -
SDOI2017 Round1 解题报告
Day1A product题意简述定义f(0)=0,f(1)=1,f(n)=f(n−1)+f(n−2)(n≥2)f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n\ge 2) 求∏i=1n∏j=1mf(gcd(i,j))\prod\limits_{i=1}^n\prod\limits_{j=1}^m f(gcd(i,j)) 多组数据,对109+710^9+7取模数据范围对10%原创 2017-04-12 07:43:21 · 1195 阅读 · 0 评论 -
[BZOJ1511][POI2006]OKR-Periods of Words(kmp+dp)
题目描述传送门题解题目要求求除了其本身的最长循环节,实际上就是要求非0的最短失配。 但是如果直接求最短失配的话,应该在求出最长失配的基础上暴力向前蹦,这样的话时间承受不了。那么可以转化一下思路,最长循环节是有递推关系的,即f(i)+=f(T(i))+(i-T(i)),T为失配函数。这样的话时间就可以做到O(n)O(n)了。代码#include<iostream> #include<cstring>原创 2016-11-07 21:56:41 · 836 阅读 · 0 评论 -
[BZOJ1355][Baltic2009]Radio Transmission(kmp)
题目描述传送门题解kmp求失配,答案应为位数减去末位失配。代码#include<iostream> #include<cstring> #include<cstdio> using namespace std; #define N 1000005char s[N]; int n,T[N];void calc_T() { T[0]=-1; for (int i=0;i<n;++i)原创 2016-11-07 21:46:02 · 506 阅读 · 0 评论 -
[poj2406]Power Strings(kmp求最小循环节)
一生至少该有一次,为了某个人而忘了自己。原创 2016-02-19 19:19:52 · 652 阅读 · 0 评论 -
[noip测试]拯救紫萱学姐(kmp+树形dp)
时间限制:1 s 内存限制:256 MB题目描述其实在开考前半个小时题面并不是这样的。 由于明天要考试,同学们要把抽屉里的书都搬空,书很多而且办了走读不能回寝室的学长一眼就看到了回班撩他的学姐,于是就把学姐当学长用♂了:“帮我把这摞书搬走OvO”。 学姐筋疲力尽地抱着沉重的一摞书回到了机房,出于无聊她翻开了学长的字典。 学长的字典由一个字符串组成。对于两个字符串a和b,如果a既是b的前缀也原创 2016-11-07 12:43:44 · 804 阅读 · 0 评论 -
HDU训练记录1:KMP
我可以接受失败,但绝对不能接受未奋斗过的自己。原创 2016-04-04 10:53:52 · 669 阅读 · 0 评论 -
[POJ1961]Period(KMP)
水边的哲学是不舍昼夜,山地的哲学是不知日月。原创 2016-04-03 21:53:27 · 580 阅读 · 0 评论 -
[BZOJ3942][Usaco2015 Feb]Censoring(栈+kmp)
题目描述传送门题解首先kmp求出来失配函数,然后暴力匹配。 如果当前位可以匹配,那么将其压入栈中;如果不能匹配,蹦到它的失配开始匹配;如果有一个完整的子串被压入栈中了,暴力将这个子串弹出。 这样的话最终弹出的都是合法的串,没有弹出的就是无法匹配的。代码#include<iostream> #include<cstring> #include<cstdio> using namespace std原创 2016-11-07 21:51:05 · 987 阅读 · 0 评论