随笔分类 -  KMP

摘要:显然最短循环节长度=i-next[i],则相当于给定next数组构造字符串。然后按照kmp的过程模拟即可。虽然这看起来是一个染色问题,但是由图的特殊性,如果next=0只要贪心地选最小的就可以了,稍微想一下容易证明。 阅读全文
posted @ 2018-12-02 18:11 Gloid 阅读(248) 评论(0) 推荐(0)
摘要:容易想到的做法是建出AC自动机,高斯消元。然而自动机上节点数量是nm的。 注意到我们要求的变量只有n个,考虑将其他不用求的节点合并为一个变量。这个变量即表示随机生成一个串,其不包含任何一个模板串的概率。 现在即有n+1个变量,考虑列出n+1个方程。设pi表示第i个人胜利的概率,显然有Σpi=1。然后 阅读全文
posted @ 2018-11-21 00:36 Gloid 阅读(276) 评论(0) 推荐(0)
摘要:首先kmp求出每个子串能放在哪些位置。接下来的两部分贪心和状压都可以,各取比较方便的。 最大值考虑贪心。考虑枚举子串的左端点出现顺序,在此基础上每个子串的位置肯定都应该尽量靠前,有是否与上个子串有交两种选择,如果有交一定会使交集最小,于是枚举第一个子串出现位置并暴力枚举4!*23种情况。 最小值考虑 阅读全文
posted @ 2018-11-02 13:38 Gloid 阅读(292) 评论(0) 推荐(0)
摘要:显然答案应该是Σi-next[next[……next[i]]] (next[next[……next[i]]]>0)。递推即可。 阅读全文
posted @ 2018-10-30 13:31 Gloid 阅读(134) 评论(0) 推荐(0)
摘要:不是很懂为什么数据范围要开的这么诡异,想到正解都不敢写。用类似NOI2014动物园的方法,对每个后缀求出类似next的数组即可。 阅读全文
posted @ 2018-09-28 18:59 Gloid 阅读(190) 评论(0) 推荐(0)