随笔分类 - 题解
摘要:和这题有点类似。 首先不难发现,如果当前 check 的值不是 n−1 的约数,一定无解。 然后进行一遍 DFS,每次用一个 multiset 保存子树传来的残链长度,然后贪心的配对。 最后如果 multiset 大小为空,给它的父亲返回 0。 否则如果大小为 1,给它的父亲返回这个值。
阅读全文
摘要:感觉和 COCI 2021-2022 #4 的 T4 一模一样。 显然考虑二分,设当前二分出的值是 lim。 那么就是称一个点能覆盖另一个点当且仅当它被选中且它与那个点的距离不大于 lim,要判断是否能选出不多于 m 个点覆盖到所有的关键节点。 贪心策略依旧一样,如果 i 作为被选择
阅读全文
摘要:先判掉 S,T 中某种字母出现次数不相等就输出 -1。 首先可以明确一个字母至多被操作一次。 考虑需要操作最少的字母等价于最多的字母不动。 发现不动的字母在 S 中形成了子序列,在 T 中形成了子串。 暴力枚举 T 中子串的起始位置,暴力匹配,求最大值即可。 时间复杂度 $\math
阅读全文
摘要:令 ci=ai−bi。 那么原题操作变成若区间 [l,r] 的 c 和为 0,那么可以将这段区间的 c 都变成 0。 最终目标是 c 全部变成 0。 令 sumi 表示 c 的前缀和。 此时操作变成,若 suml−1=sumr,可以将这段区
阅读全文
摘要:考虑对每个节点 u 计算贡献,它的贡献有以下三种: 以 u 为根,在整棵树里选 k 个点使得它们的 LCA 为点 u 以 u 的父亲所属的连通块里的某个点为根,在整棵树里选 k 个点使得它们的 LCA 为点 u 以 u 的某个子树
阅读全文
摘要:看到 Shift 先把 \left{a\right} 复制一遍。 构造一个新的序列等于 b+(−1)+a+a。 跑一遍魔改的 Z 函数就可以了,即判断当前的 ai⊕bj 是否等于 ai−1⊕bj−1。 最终统计答案的时候如果 zi=n 就
阅读全文
摘要:正难则反,考虑用所有路径减去不包含颜色 k 的路径。 删掉所有颜色为 k 的节点,发现树分成了好多个连通块,设它们的大小为 s1,s2,⋯,那么不包含颜色 k 的路径条数就是 ∑si×(si+1)2
暴力做是 $\mat
阅读全文
摘要:由于点的度数最大为 2,于是这张图由链,孤立点,大小至少为 2 的环组成,为了方便把孤立点也看成链。 考虑容斥掉第三个条件,最大连通块大小恰好为 L 的方案数即为最大连通块大小至多为 L 的方案数减去大小至多为 L−1 的方案数。 考虑 DP,设 f(i,j) 表示 i
阅读全文
摘要:看到次幂就得老老实实的把答案算出来。 不难发现对于一个排列的答案,它的贡献是 i→pi 后所有环大小的 lcm,于是设 f(i,j) 表示 i 个点组成的若干个环,环大小的 lcm 是 j 的方案数。 每次加入一个新的大小为 k 的环的
阅读全文
摘要:首先能发现一个矩阵是合法的,当且仅当它的每一行都和第一行一样,或正好相反。 充分性很显然,必要性的证明如下: 考虑一个矩阵如果合法,那必然能从一个全黑的矩阵进行若干次操作,因为操作是可逆的。然后如果操作行会使其与第一行相反,操作列不会影响其他行与第一行的相对状态。 令 s 表示原矩阵,$a_{i
阅读全文
摘要:F: 简单题,考虑增量模拟。 考虑选 i 带来的新的贡献。 如果 Aj≤Ai,那么贡献是 Ai。 否则贡献是 Aj。 用两个树状数组维护即可。 Code G: 构造 \left{b\right} 满足: b1=a1 $b_i=a_i-a_{i-1},i\gt
阅读全文
摘要:考虑容斥,拆成四部分,每部分都形如 n∑i=0m∑j=0f(i,j)
其中 f(i,j) 表示从 (0,0) 走到 (i,j) 的方案数,显然为 (i+ji)。 而 m∑j=0f(i,j)=f(i+1,m)
阅读全文
摘要:思路参考 AK_Dream 大佬 考虑容斥,计算钦定 k 位满足 ri=pi 或 ri=qi 的方案数。 建出 n 个点,将每对 pi,qi 连边,由于每个点度数都是 2,所以会形成若干个环和一些孤立点(自环)。 对于自环,则有 pi=qi,只用考虑 $r
阅读全文
摘要:构造 Xi=∑mj=1(−1)i+jAi,j,Yj=∑ni=1(−1)i+jAi,j。 则一个矩阵 B 能被矩阵 A 变成当且仅当 \left{X\right},\left{Y\right} 均相等。 必要性:很显然,因
阅读全文
摘要:DDP 板子。 设 fi,0/1 表示前 i 位,以 0/1 结尾的本质不同子序列有多少种。 则最终答案就是 fn,0+fn,1。 考虑转移,以当前字符为 0 为例,则有 $$f_{i,0}=f_{i-1,0}+f_{i-1,1}+1,f_{i,1}=f_{i-1,
阅读全文
摘要:设 f(i,j) 表示压缩后长度为 i,原串长度为 j 的方案数。 则最终答案就是 ∑n−1i=1f(i,n)。 考虑转移,枚举下一段的长度 k,设长度的位数为 x,则有 $f(i+1+x,j+k)\gets f(i+1+x,j+k)+25\times f(
阅读全文
摘要:令 disi 表示 i 到离它最近的充电站的距离。 这个很好办,建立一个超级源点,连向所有充电站,边权为 0,跑一遍最短路即可。 设走到点 u,剩余电量为 x,所需的最小容量是 c,则有 disu≤x≤c−disu
因为 u 点剩余的电量一定可以
阅读全文
摘要:考虑两种暴力。 直接枚举同颜色的点,枚举起点和终点,组合数计算路径数即可,复杂度 O(k2),其中 k 为该颜色的点的个数。 做一遍 O(n2) DP,遇到该颜色的点就统计答案。 根号分治,若 k≤n,采用暴力一,易知复杂度不超过 $\m
阅读全文
摘要:套路的二项式反演。 题目要求实际就是两种颜色的棋子所占的行和列都不能有交。 设 f(i,j,k) 表示在 i 行 j 列中放 k 个棋子使得每行,每列都不为空的方案数。则最终答案为: $$\sum_{i=1}^n\sum_{j=1}^m\sum_{k=1}^{n-i}\sum_{l=
阅读全文