06 2024 档案

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

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示