$|S| \le 5 \times 10^5$ 题解 这题直接用通配符匹配的套路会错,因为重复部分的$?$可能同时被当做了$0$和$1$ 有长度为$i$的公共前缀后缀等价于有长度为$n-i$的循环节; 对于循环节$d$,只需要知道对于任意的$d|i-j$,是否存在$(s[i]='0'且s[j]='1 ...
分类:
其他好文 时间:
2019-02-25 21:53:10
阅读次数:
213
STL算什么!!!还是那句话!!! 数组模拟世间万物!!!!!!!!!!!!!!!!! 好吧,前缀后缀方法&stl法 前缀后缀: cpp include using namespace std; define int long long define s second define f first ...
分类:
其他好文 时间:
2019-02-08 13:16:15
阅读次数:
168
题目大意 给出字符串,寻找最小要补全的字符个数,使得字符串是两次的循环 解法 通过寻找规律,我们又发现了len next[len]又派上了用场 ①如果next[len]是0,说明最大前缀后缀和为0,那么这个串里面没有什么重复的那种部分,也就是输出len例如abcde ②如果len%(len next ...
分类:
编程语言 时间:
2018-11-30 14:12:09
阅读次数:
149
During the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast areas of north China Plain. Generally speaking, vil ...
分类:
其他好文 时间:
2018-11-01 11:31:48
阅读次数:
147
DecimalFormat继承自NumberFormat,可以使用它将十进制的数以不同形式格式化为字符串形式,可以控制前导和尾随0、前缀、后缀、分组(千)、小数分隔符等,如果要更改格式符号(例如小数点分隔符)。 它有各种各样的设计使其能够解析和格式化数字的特征区域设置,包括对西方、阿拉伯和印度数字的 ...
分类:
其他好文 时间:
2018-10-31 14:03:25
阅读次数:
146
"Codeforces 126B. Password" 题意:一个字符串,找出最长的子串t,它既是前缀又是后缀,还出现在中间。输出t,不存在则输出Just a legend。 思路:利用KMP算法处理出next数组,由next数组的意义可以知道i为尾的最长相同前缀后缀。则ne[n 1],ne[ne[ ...
分类:
其他好文 时间:
2018-10-20 13:36:29
阅读次数:
139
传送门: "Period" 题意 给出一个字符串,从第二个位置开始找到它前缀的最大重复次数及及此时的位置 分析 利用KMP的next数组求解。根据next数组的定义(当前位置的前缀后缀最大匹配长度) 发现在位置i处如果出现了重复,必有i next[i]为前缀最大的重复长度,此时满足(i%(i nex ...
分类:
其他好文 时间:
2018-10-13 00:02:40
阅读次数:
163
后缀自动机练习专题 一些比较有用的东东: (1) $\text{sam}$ 上一条从初始状态出发的路径对应一个子串 (2) $\text{parent}$ 树上一个节点能表示的最长的串对应一个前缀/后缀 (3) $len(u)$ 表示节点 $u$ 能表示的最长串的长度 (4) $fa(u)$ 表示节 ...
分类:
其他好文 时间:
2018-10-09 15:39:58
阅读次数:
303
一道KMP题目 求出next数组后就可以得知一个字串的最长前缀-后缀字串 ...
分类:
其他好文 时间:
2018-10-04 10:36:57
阅读次数:
136
n ne[n]是n的最长循环节长度,其实就是n 最短前缀=后缀长度 然后我们要求最短循环节,其实就是ne一直往前跳,跳到不能跳为止,这时的n ne[n]就是n的最短循环节长度 cpp include include using namespace std; const int N=1000005; ...
分类:
其他好文 时间:
2018-09-08 22:28:10
阅读次数:
145