标题与内容无关。
不保证内容的真实性。
标 * 表示看了题解。
CF1697C
注意到操作不会改变 a 与 a,c 与 c,a 与 c 之间的相对位置关系,O(n) 扫一遍 check 就好了。
CF1697D *
第一种询问只有 26 次,所以做法应该是和字符种类数相关的。
因为单点询问次数有限,所以不应该浪费多余的第一种询问,我们只需要关心每种字符最后出现的位置,当出现新的一种字符时再使用第一种询问。
固定了左端点,移动右端点时,第二种询问的结果是单调不减的。记录每种颜色最后出现的位置,二分的时候依据已经出现过的种类 check 是否出现新种类。操作次数是 \(n \log 26\)。
CF1697E *
对于一个点 a,我们可以处理出与 a 距离最小的点的集合 \(S(a)\),那么对于另外一个点 b 的集合 \(S(b)\),当且仅当 \(S(a) = S(b)\) 时,\(S(a) \cup S(b)\) 可以染色成相同的颜色,否则其中的点必须染成两两不同的颜色。
证明可以考虑反证法。假设 \(\exist x \in S(b)\) 且 \(x \notin S(a)\),\(x\) 的颜色和 \(a\),\(b\) 不同,那么有 \(d(a, b) = d(b, x)\),\(d(a, b) < d(a, x)\),与条件 2 矛盾,所以 \(a\),\(b\) 不能染成相同的颜色。
所以如果 \(x \in S(a)\),\(x\) 与 \(a\) 连一条边,那么相当于每个能染色成相同颜色的集合就是一个完全图,且两两集合不交,每个集合中要么染成一种颜色,要么染成 \(size\) 种颜色。考虑 dp,设 \(f(i, j)\) 表示前 \(i\) 个集合,用了 \(j\) 种颜色,不考虑颜色排列 的方案数。类似于背包 dp 的倒序转移,统计答案的时候乘上排列数就好了。
那么怎么求集合呢?看起来要求出若干个完全子图,实际上题目要求的距离是曼哈顿距离,可以注意到 \(|S(a)| \leq 4\) 的,所以只要维护一个点距离最近的四个点,然后合并就好了。
CF165E
如果把位运算视为集合运算,那么 \(a \& b = 0\) 相当于 M \\oplus a 是 \(b\) 的子集,其中 \(M\) 是全集。也就是 \(A \cap B = \varnothing\),相当于 \(\complement_{M}{A} \subset B\),所以做个 SOSdp 就行了。
CF449D *
高维后缀和,高维差分。
CF1809D
因为是 01 序列,所以分界点只会有一个,枚举这个分界点算答案。
我们要把分界点左边的所有 1 删掉或换到右边,把分界点右边的 0 删掉或换到左边。在这种情况下,最多只会使用一次交换操作,否则是不如直接删掉两个数的。
那么只有当分界点为 0,前一位为 1 时,才使用交换操作。
CF1798C
\(a_i = k d_i\),\(c_i = \dfrac{1}{k} a_i b_i\),对于若干堆糖果,他们共同的 \(c_i\) 至少为 \(k' \text{lcm}(b_i \cdots )\),同时 \(a_i b_i\) 是 \(c_i\) 的倍数,所以 \(\gcd(a_i b_i \cdots)\) 是 \(c_i\) 的倍数,即 \(\gcd(a_i b_i \cdots)\) 是 \(\text{lcm}(b_i \cdots )\) 的倍数。
CF1681D
暴力是跑不满的,所以直接 bfs 就好了。
CF1598E
考虑总方案数怎么算。先不考虑单个格子的方案数,记 \(f(x, y, 0 / 1)\) 表示终点在 \((x, y)\),从左边走进来或从上边走进来的方案数,转移是简单的。
那么有修改的时候怎么办?画图,注意到修改一个点,会影响的点只会在右下角,且只会是在三条对角线上。也就是每次修改只会影响不超过 \(3n\) 个点,所以每次修改后暴力更新 右下角的 \(f(x, y, 0 / 1)\)。
CF1810E *
做法一:均摊。
精细分析。
做法二:Kruskal 重构树。
复读 https://www.luogu.com.cn/article/vjt7vs56 。
先把点权转换成边权,边权就是两个点的点权较大值,那么合并一个点相当于走过一条边,且打过怪的数量大于等于边权。建出 Kruskal 重构树,由 Kruskal 重构树的性质可知,能走一条边等价于子树大小大于等于重构树上该点点权,如果能走到点权为 0 的点就是有解,否则是无解。
注意图不连通时一定是无解。
CF1761C
因为题目保证了有解,所以子集关系连出来的图是个 DAG,按照拓扑序构造即可。
CF1761D *
鸽子了。
CF1761E
见 https://www.cnblogs.com/Lonely-233/p/18802864#cf1761e 。
CF1427C *
鸽子。
CF1442A
鸽子。
CF1472E *
鸽子。
CF1446B
类似于 LCS 的状态转移。