Codeforces.2127 (Codeforces Round 1041) 总结
Codeforces.2127 (Codeforces Round 1041) 总结
A. Mix Mex Max
考虑当 \(Mex\) 为 \(0\) 时,则 \(Max=Min\) 则 \(a_i=a_{i+1}=a_{i+2}\ne 0\)。
当 \(Mex>0\) 时,则 \(Max=Mex\) 无解。
所以只要判断是否能全变成一样且不为 \(0\) 即可。
B. Hamiiid, Haaamid... Hamid?
每次往一个方向放障碍时,一定是往这个方向第一个空位放最优。
如果小人走左边,就一直往左边放障碍,则答案为 \(x\)。
但最初往左边放障碍时,他有可能走右边,记右侧第一个障碍在 \(R\),则它会先走到 \(R\),然后之后我们就一直往右边放障碍,答案为 \(n-R+2\)。
因此答案为 \(\max(\min(x,n-R+2),\min(n-x+1,L+1))\)。
C. Trip Shopping
首先 \(a,b\) 是不用区分的。如果我们选出四个数 \(a\le b\le c\le d\) 那么它会排成 \((b,c)(a,d)\) 或 \((a,c)(b,d)\),这两种对答案的贡献是相同的。
考虑如果一开始就存在相交的 \((a,c)(b,d)\),那么我们 \(K\) 操作都选它们两个,对答案的贡献为 \(0\)。
如果所有都不相交,我们选出第一个以后就存在相交的了,对于选出满足 \(a\le b<c\le d\) 的 \((a,b)(c,d)\),对答案的贡献为 \(2c-2b\)。
D. Root was Built by Love, Broken by Destiny
称多度点为大于一度的点。对于一个多度点,若存在至少三个相邻多度点则无解,否则把两个相邻多度点放在两边,中间相邻的一度点可以随意排列。
随意找一个多度点开始遍历所有点即可。注意如果有环也是无解的。
E. Ancient Tree
考虑对不同颜色分别求虚树上的点。
- 如果一个点属于至少两种颜色的虚树,那么这个点一定是可爱的,将答案加 \(w\)。若 \(c=0\) 则将 \(c\) 赋成它属于的任意一种虚树的颜色,发现不会改变虚树形态。
- 如果一个点属于一种虚树,若 \(c=0\) 则将 \(c\) 赋成这个虚树的颜色,发现不会改变虚树形态。
- 如果一个点不属于任何虚树,则 \(c=0\),考虑将 \(c\) 赋成其父亲的颜色,发现不会改变虚树形态。
除去 \(c\) 全为 \(0\) 的情况。按 DFS 序依次考虑 \(c=0\) 的点,这样能把所有 \(c\) 填上颜色,并且不会改变虚树形态,则答案恰好为一类点的 \(w\) 的和且为最小值。

浙公网安备 33010602011771号