上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 31 下一页
摘要: 为什么我和同学对比了一下,发现我和他的做法差别很大啊 对于这种问题,我们把整个字符串分为两个部分:前缀顶着最高位和后缀没有顶着最高位。 我们枚举这个前缀,然后后缀通过 DP 来搞定。 不包含任何一个子串,似乎最有力的处理工具就是 ACAM。 于是我们可以确定这个 DP 的状态:\(dp[k][u]\ 阅读全文
posted @ 2022-03-16 08:39 Prean 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 这道题还有点意思。 路径要求是一个回文串,回文串立马枚举中点。中点只可能在对角线上。 枚举对角线上的一个点,然后两边的路径必须完全相同。 既然路径上的字符必须完全相同,那么每个前缀也必须完全相同。 考虑 DP。设 \(dp[x1][y1][x2][y2]\) 表示左上方的路径终点在 \((x1,y1 阅读全文
posted @ 2022-03-15 12:00 Prean 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 众所周知,排列是一个置换,一个置换是一车环。 步数就是这些环长的 \(lcm\)。 如果你去思考直接 DP,会发现很困难,根本设不出来状态。于是考虑正难则反:每个质数幂 \(p^k\) 对答案的贡献。 可以发现,如果设 \(f[p^k]\) 是 \(p^k\) 在 \(f[p^k]\) 个排列的 \ 阅读全文
posted @ 2022-03-14 20:17 Prean 阅读(27) 评论(0) 推荐(0) 编辑
摘要: LCS 为给定串的长度减一,考虑枚举一个区间 \([L,R]\),表示 \(S\) 和 \(T\) 的长度为 \(L-1\) 的前缀完全相同以及长度为 \(n-R\) 的后缀完全相同,且没有比这个前缀和后缀更长的前缀和后缀。 可以发现对于一组 \([L,R]\),满足条件的串还需要满足 \(S[L+ 阅读全文
posted @ 2022-03-14 08:59 Prean 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 确实牛逼。。。。。。这个转化我反正肯定想不到。。。 考虑 \(a=b\) 的情况。发现出了平局之外都是一半赢一半输。可以得到此时的答案为: \(\frac{2^{a+b}-\sum_{i=0}^{a}\binom{a}{i}^2}{2}\) 后面是范德蒙德卷积,可以得到答案是 \(\frac{2^{ 阅读全文
posted @ 2022-03-12 10:42 Prean 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 《线 性 做 法》 首先我们对所有串建立 ACAM,不难发现对于一个 \(i\),可能的 \(j\) 一定是 \(i\) 所有后缀节点在 fail 树上第一个被打标记的祖先。 但是这些祖先的内部可能在 fail 树上仍然存在祖孙关系。我们需要去掉存在祖孙关系的父亲节点。 我们将节点按照括号序的左端点 阅读全文
posted @ 2022-03-11 11:12 Prean 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 这两道题好像啊 贡献一种使用SAM和ACAM草两道题的方法 下面假装有 \(O(\sum |S|=m)=O(n)\)。 你看看,这CF换过多少个出题人啦?换汤不换药啦!其实这两道题是同一个人出的 CF587F 根号分治。把长度大于 \(B\) 的串全部拿出来,有 \(\frac{m}{B}\) 个串 阅读全文
posted @ 2022-03-10 16:41 Prean 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 某位寄吧的故事 下文的 \(m\) 即为题面中的 \(Q\)。 离散化,把序列变成 \(O(2m)\) 个部分,然后对这 \(O(2m)\) 个部分把最大值求出来,每次把最大值相同的部分拉出来,再把限制和这个最大值相同的也拉出来。我们假装这个最值叫 \(c\)。 然后是 \(dp\)。\(dp[n] 阅读全文
posted @ 2022-03-10 08:57 Prean 阅读(26) 评论(0) 推荐(0) 编辑
摘要: @CF1327F 最小值看着有点怪,先转化成最大值吧。。。反正没啥区别。。。 考虑把最大值相同的区间和限制为这个最大值的区间都拿出来。然后离散化。问题变为让所有区间都满足最值为 \(c\)。 考虑 DP。设 \(dp[n][k]\) 表示到序列上的第 \(n\) 个位置后,上一个 \(c\) 在第 阅读全文
posted @ 2022-03-09 16:25 Prean 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 首先第一步,位运算拆位。变为一个区间的 \(And\) 为 \(0\) 或 \(1\)。 如果 \(And\) 为 \(1\),那么所有数都需要为 \(1\),否则为 \(0\)。 我们把所有可能为 \(0\) 的位置拉出来,然后和区间进行离散化。这个可以做到 \(O(n+m)\),处理每个位置前面 阅读全文
posted @ 2022-03-09 14:50 Prean 阅读(45) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 31 下一页
var canShowAdsense=function(){return !!0};