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\) 的和且为最小值。

posted @ 2025-08-21 17:13  dengchengyu  阅读(20)  评论(0)    收藏  举报