06 2024 档案
摘要:P6587 超超的序列 加强 01trie + 树上维护 好题,使我调不出来。 观察 满足的条件,在二进制上分析, 实际上就是从低位开始的前 位。那么所有满足条件的 从低位开始的前 位都相同,这类似相同的前缀。考虑建
阅读全文
摘要:CF432D Prefixes and Suffixes kmp + 失配树 前后缀容易想到 kmp,发现完美子串的种类显然就是 一直跳的次数。难点在统计每种的出现次数。 考虑连边 ,构成了一个 fail 树。这棵树刻画了前后缀的包含关
阅读全文
摘要:P7537 [COCI2016-2017#4] Rima 字典树 + 树形 dp 刻画一下限制,其实就是可以在末尾添加、替换、删除一个字母。然后我们发现,一定是先删除再增加,呈单谷状,两边的处理相似,只考虑一边的计算。将字符串翻转后放到字典树上考虑,其实就是树形 dp 求该节点子树内能够接多少个字符
阅读全文
摘要:CF580E Kefa and Watch 线段树维护哈希 哈希可以合并,所以可以想到用线段树维护哈希值。预处理 表示数字 长度为 时的哈希值,实现区间覆盖,区间查询。 询问等价于判断 和 \(s[l+d\cdot
阅读全文
摘要:CF961F k-substrings 哈希 + 二分 + 线段树 首先需要转变一下角度,容易发现如果按每个 计算答案,会计算多次相同答案的贡献。于是从答案对子串的贡献入手,枚举答案。因为 子串中心对称,于是 的中心也中心对称,枚举前缀的中心为 ,那么对
阅读全文
摘要:P7717 「EZEC-10」序列 并查集 + dfs 题目的限制容易想到并查集维护异或和的经典做法,由于异或和的传递性,可以维护 表示 到联通块根的异或和,同时判断新的限制是否满足条件。 不同连通块相互独立,满足乘法原理。在同一个连通块内,确定一个值,其他值也确定(根据
阅读全文
摘要:CF985F Isomorphic Strings 哈希 对于两个串是否匹配,我们显然不关心字母是什么,而关心每个字母占有的位置是什么,如果每个字母占有的位置构成的集合相同,那么就是匹配的。于是就类似字符串哈希一样哈希字母位置。将集合排序后比较,就做完了。 复杂度 。 #incl
阅读全文
摘要:P6286 [COCI2016-2017#1] Cezar 字典树+拓扑排序 没看题绕了半天。根据字符串的比较,容易想到用字典树。直接枚举两个字符串,找到最大公共前缀,根据排名连边。跑一遍拓扑排序后就可以得到”哪些字母字典序需要更小“这样一个从左到右的顺序。然后越靠前的字母,它位置上的替换字母就越小
阅读全文
摘要:P3065 [USACO12DEC] First! G 字典树+判环 考虑字典序的比较过程,什么时候需要确定字母的顺序?当有多个字符串前缀相同,比较当前位时需要字母的顺序。于是可以建出字典树,对于每个字符串,单独判断是否可行。遍历当前字符串在字典树上的路径,如果一个节点下有多条边连出,那么就有若干个
阅读全文
摘要:CF79D Password 差分 + 状压 dp + 最短路/bfs 好题。区间取反不好做?考虑差分一下,那么操作就转化为 和 两个位置的单点取反。因为差分数组上 的数量 ,满足题目状态等价于满足差分数组的状态,考虑状压 的位
阅读全文
摘要:[BZOJ 5003] 与链 背包 dp 题意 思路 考虑刻画 (i&j)==j 的条件,其实就是 是 在二进制位上的子集。那么路径就是不断取子集的过程。考虑按二进制上每一位考虑,那么路径上的 都是一段前缀。因为路径长度等于 ,所以 的数量
阅读全文
摘要:CF17C Balance upd 2024.11.13 字符串 dp 可以看到答案要求的是个数,我们的计数工具有 dp,组合计数等。这题中的操作可以说是“覆盖”,偏简单,又看到数据范围偏小,可以想想用朴素的 dp 怎么做。 计数平衡串,关心字母的数量,字符集又很小,所以可以想直接表示在状态里就好了
阅读全文
摘要:P7444 「EZEC-7」猜排列 dp 考虑 dp。从小到大插入数字,从小到大满足限制。假如现在想知道是否满足 ,发现我们只关心 包含 的最小区间的左右端点位置,于是可以设 表示填完了 个数,最小区
阅读全文
摘要:P3643 [APIO2016] 划艇 线性 dp+离散化+组合数 一个很朴素的状态就是设 表示前 所学校排了 艘潜艇的方案数。但是 ,过不了一点。 考虑每个学校对应数轴上一个区间,发现题目只关心大小关系,所以考虑离散化。这里
阅读全文
摘要:CF797F Mice and Holes 线性 dp+单调队列优化 可以发现,进同一个洞的老鼠是一段连续的区间,所以考虑 dp。设 表示前 个洞进了 只老鼠的最小总距离,转移枚举第 个洞中的老鼠对应的区间,然后要预处理出 \(g_{i,j
阅读全文
摘要:CF1730F Almost Sorted 状压 dp 题目的描述有点奇怪,实际上就是将 在满足要求的情况下重排列,求下标的逆序对最小值。 根据条件,我们猜测前面的数都不会很大,于是考虑从左到右插入值,若当前插入的值为 ,那么由限制条件可知,前面放的数都 \(\le a_i
阅读全文
摘要:CF111C Petya and Spiders 状压 dp 观察到数据范围 ,所以最短边 。然后题目的要求就是将网格用四连通块全覆盖的最少数量。 然后考虑一行一行放蜘蛛,那么假设当前考虑完了前 行(前 行全部铺满),那
阅读全文
摘要:CF1886E I Wanna be the Team Leader 贪心+状压 dp 注意到每个项目的程序员水平都要大于等于要求值,那么就相当于限制只与程序员最小值有关。 那么考虑将 序列从小到大排序,那么就有结论:每个项目的程序员都是一段连续的区间。考虑贪心去证这个结论,假如有一段同
阅读全文
摘要:CF482C Game with Strings 状压期望 dp+高维前缀和 考虑固定一个要猜出的字符串,然后考虑期望 dp,状压目前已经猜了的字符位置,设 表示已经猜了的字符位置状态为 ,最少还需要猜几次的期望值。那么转移枚举下一次要猜的位置 ,有 \[f_
阅读全文
摘要:CF1550E Stringforces 二分+状压 dp 可以看到最大值最小的信息,考虑二分最小值,判断是否存在方案满足条件。 思考答案的最终状态如果只看每个字母最长连续子串的部分形如 aaa...ccc...bbbb...ddd。每个时刻会有一些字符满足条件,所以考虑状压字符集,朴素设 \(f_
阅读全文
摘要:CF1316E Team Building 状压 dp 观察:假如选出了 个队员,那么 个观众一定是剩下的人中的前 大。 可以考虑将 从大到小排序,那么观众就是剩下的人中的一段前缀。 然后就可以考虑怎么选队员了,发现 很小,考虑直接状压
阅读全文
摘要:CF1234F Yet Another Substring Reverse 状压 dp+高维前缀和 一个很显然的发现是最长子串长度不会超过字符集。那么如果没有这个操作,是很简单的,我们看看多了这个操作意味着什么。 对于一个子串,考虑一次翻转对它的影响。在它内部的翻转肯定是没有意义的;我们一定有一个操
阅读全文