zz:https://www.cnblogs.com/GXZlegend/p/6855581.html Sol: 先求出next,然后我们可以发现如果x和next[x](x>0)连一条边,那么就是一颗树,而所求的num是每个点的所有祖先节点中最后一个长度小于等于len[x]的点之前的祖先节点个数-1 ...
分类:
其他好文 时间:
2020-02-28 22:53:37
阅读次数:
50
题面 "传送门" 思路 首先,这题最好的一个地方,在于它给出的关于$next$的讲解实在是妙极......甚至可以说我的kmp是过了这道题以后才脱胎换骨的 然后是正文: 如何求$num$数组? 这道题的输入有1e6个字符,显然需要$O\left(n\right)$左右级别的算法来解 先看到$num$ ...
分类:
编程语言 时间:
2018-04-21 12:48:07
阅读次数:
263
题面 "传送门" Sol 这是一道阅读理解题,读了好久才明白意思。。。 首先可以想到处理出next数组,每次的位置i跳next跳到长度小于i的一半位置,然后继续跳到零统计此时跳的次数就是答案 那么暴力就是$O(n^2)$ 让我们一起膜拜yyb大佬的 "倍增跳next" 那么优化就是在求next的时候 ...
分类:
其他好文 时间:
2018-01-18 15:00:42
阅读次数:
122
bzoj4864 Splay乱搞 bzoj3669 正解LCT,考虑上下界的spfa可过 bzoj3668 位运算 暴力 bzoj3670 KMP DP bzoj3671 含有最小的一个数的路径一定比不含的优 贪心 bzoj1564 按数值排序,就得到了那个Treap的中序遍历,用dp(l,r,k) ...
分类:
其他好文 时间:
2017-12-19 01:03:41
阅读次数:
174
【传送门:BZOJ3670】 简要题意: 给出一个st字符串,定义一个sum数组,sum[i]表示st[1...i]中,所有前缀和后缀不重叠的情况下,前缀和后缀相等的数量,比如说st='aaaaa',sum[5]=2,因为st[1]=st[len],st[1...2]=st[len-1...len] ...
分类:
其他好文 时间:
2017-11-20 14:36:51
阅读次数:
122
3670: [Noi2014]动物园 Description 近日,园长发现动物园中好吃懒做的动物越来越多了。例如企鹅,只会卖萌向游客要吃的。为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法。 某天,园长给动物们讲解KMP算法。 园长:“对于一个字 ...
分类:
其他好文 时间:
2017-10-17 12:18:28
阅读次数:
184
KMP 我似乎复杂度写的不对。。。 因为位置相同只算一次,后缀数组什么的都不管用了,我们就暴力kmp,但是我写的是暴力跳。。。竟然过了。。。我写bzoj3670才发现。。。 #include<cstdio> #include<cstring> #include<algorithm> using na ...
分类:
其他好文 时间:
2017-09-05 22:02:58
阅读次数:
155
nxt数组为KMP的next数组num[i]储存了i前面可以匹配的串的个数。先在KMP求nxt中顺便求出num最后再找到对于i的最大的前后缀不重叠的可匹配的j,ans*=(num[j]+1)%1000000007ans即为答案 1 #include<cstdio> 2 #include<cstrin ...
分类:
其他好文 时间:
2017-05-22 12:07:19
阅读次数:
189
题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了。例如企鹅,只会卖萌向游客要吃的。为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法。 某天,园长给动物们讲解KMP算法。 园长:“对于一个字符串S,它的长度为L。我们可以在O(L)的时间内,求 ...
分类:
编程语言 时间:
2017-05-15 12:03:02
阅读次数:
163
OJ题号:洛谷2375、BZOJ3670 思路: 一开始先写了一个裸的KMP,在求next数组(f数组)的时候加了一个判断j<<1是否>i+1(若大于则说明有重叠部分),后来发现并不能这样做。因为这样会影响到后面next数组的求值。后来看了一个题解,里面的思路是重新做一遍求next的过程,同时再判断 ...
分类:
其他好文 时间:
2017-05-07 21:10:49
阅读次数:
181