摘要: 首先有一个 $\mathcal O(N^2)$ 做法。 考虑容斥掉条件一,令 $g(i)$ 表示恰好有 $i$ 个花园空着的方案数,$f(i)$ 表示钦定有 $i$ 个花园空着,剩下无限制的方案数。 则有 $g(0)=\sum\limits_{i=0}^{N}(-1)^if(i)$。 而 $$f(i 阅读全文
posted @ 2022-11-08 22:33 Kobe303 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 考虑重新刻画一个序列的生成,设原数列为 $(0,0)$,将所有数从小到大排序后依次加入。 例如 $(2,3,1)$ 是这样生成的: $$(0,0)\to(0,1,0)\to(0,2,1,0)\to(0,2,3,1,0)$$ 于是问题变成多少种方案使得这样的序列存在 $k+1$ 个位置 $i$ 满足 阅读全文
posted @ 2022-11-08 21:52 Kobe303 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 首先可以想到枚举每条边上的白色石子个数,记为 $k$。 则最终答案为 $\sum\limits_{k=0}^{d+1}f(k)$,$f(x)$ 表示每条边的石子个数为 $x$ 时的答案。 那么可以想到一个暴力的 dp 状态,设 $f_{i,j,k}$ 表示考虑了前 $i$ 条边,最开始的点的颜色是 阅读全文
posted @ 2022-11-08 20:55 Kobe303 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 首先显然能想到二分,随后想想怎么判定。 ~~这里我卡住了(~~ 看了题解发现是一个常用的技巧。 先把所有 $Y$ 的位置存下来,记为数组 $A$,记 $B_i=A_i-i$,那么发现交换就相当于把 $B$ 中某个值加一或减一,接下来就是 check 能否在 $K$ 次内形成一段连续的相同的值,由于 阅读全文
posted @ 2022-11-08 20:10 Kobe303 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 首先题目要求删去边权和最小的边使得图变成一张二分图,那么看到二分图就想到染色,那么题目的意思就是让同色节点之间的边权之和最小。不失一般性的,强制 $0$ 节点为白色。 由于原图是一个环,这不好处理,考虑断开 $N$ 和 $1$ 之间的边,那么这样就能设计出一个 DP 状态,$f_{i,j,k}$ 表 阅读全文
posted @ 2022-11-08 19:51 Kobe303 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 直接连边是 $\mathcal O(N^2)$ 的,考虑优化建图。构建 $M$ 个虚点,分别是 $\overline{0},\overline{1},\cdots,\overline{M-1}$。然后对于 $\forall k\in[0,M-1]$,连边 $\overline{k}\to \over 阅读全文
posted @ 2022-11-08 14:59 Kobe303 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 前置:ABC214D 那题只要求 $\max$,将边按照边权从小到大排序后依次加入,用并查集维护连通块大小并更新答案即可。 Code 于是这题也一样,把 $\max$ 和 $\min$ 分别求出来,然后减一减就好了。 但是有一个问题,这题是点权,如何转化成边权呢? 假设当前求 $\max$。 那么将 阅读全文
posted @ 2022-11-08 11:02 Kobe303 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 套路题。 设 $M=10^5$。 设 $f(i)$ 表示路径的 $\gcd$ 恰好为 $i$ 时候的贡献,则答案为 $\sum_{i=1}^M i\times f(i)$。 套路的,将限制变成路径的 $\gcd$ 为 $i$ 的倍数,设 $g(i)$ 表示此时的贡献。 则有 $f(i)=g(i)-\ 阅读全文
posted @ 2022-11-08 10:54 Kobe303 阅读(19) 评论(0) 推荐(0) 编辑