摘要:
P7717 「EZEC-10」序列 并查集 + dfs 题目的限制容易想到并查集维护异或和的经典做法,由于异或和的传递性,可以维护 \(d_x\) 表示 \(x\) 到联通块根的异或和,同时判断新的限制是否满足条件。 不同连通块相互独立,满足乘法原理。在同一个连通块内,确定一个值,其他值也确定(根据 阅读全文
摘要:
CF985F Isomorphic Strings 哈希 对于两个串是否匹配,我们显然不关心字母是什么,而关心每个字母占有的位置是什么,如果每个字母占有的位置构成的集合相同,那么就是匹配的。于是就类似字符串哈希一样哈希字母位置。将集合排序后比较,就做完了。 复杂度 \(O(26m)\)。 #incl 阅读全文
摘要:
P6286 [COCI2016-2017#1] Cezar 字典树+拓扑排序 没看题绕了半天。根据字符串的比较,容易想到用字典树。直接枚举两个字符串,找到最大公共前缀,根据排名连边。跑一遍拓扑排序后就可以得到”哪些字母字典序需要更小“这样一个从左到右的顺序。然后越靠前的字母,它位置上的替换字母就越小 阅读全文
摘要:
P3065 [USACO12DEC] First! G 字典树+判环 考虑字典序的比较过程,什么时候需要确定字母的顺序?当有多个字符串前缀相同,比较当前位时需要字母的顺序。于是可以建出字典树,对于每个字符串,单独判断是否可行。遍历当前字符串在字典树上的路径,如果一个节点下有多条边连出,那么就有若干个 阅读全文
摘要:
CF79D Password 差分 + 状压 dp + 最短路/bfs 好题。区间取反不好做?考虑差分一下,那么操作就转化为 \(i\) 和 \(i+k\) 两个位置的单点取反。因为差分数组上 \(1\) 的数量 \(\le 20\),满足题目状态等价于满足差分数组的状态,考虑状压 \(1\) 的位 阅读全文
摘要:
[BZOJ 5003] 与链 背包 dp 题意 思路 考虑刻画 (i&j)==j 的条件,其实就是 \(j\) 是 \(i\) 在二进制位上的子集。那么路径就是不断取子集的过程。考虑按二进制上每一位考虑,那么路径上的 \(1\) 都是一段前缀。因为路径长度等于 \(k\),所以 \(1\) 的数量 阅读全文