AtCoder ARC205 总结

arc205 总结

A - 2x2 Erasing

显然我们可以按从上到下,从左到右的顺序,对于每个出现的 \(2\times 2\) 合法矩形,将左上角染色,这样可以把所有合法矩形染上色。预处理二维前缀和即可。复杂度 \(O(n^2+Q)\)

B - Triangle Toggle

这题反而卡了我比较久。手玩发现,当 \(m=0\)\(n\) 为奇数则可以全消掉,\(n\) 为偶数则会留下 \(n/2\) 对不交二元组。

于是考虑把给定的 \(m\) 条边也化成若干对不交二元组的形式,具体地每次找到度数大于一的点 \(x\),选取 \(x\) 的邻点 \(y,z\),操作 \(x,y,z\),则每次总度数会至少减 \(2\),只用做 \(O(m)\) 步。

假设化成 \(k\) 对二元组,那么可以与完全图上的二元组抵消,\(n\) 为奇数答案为 \(all-k\)\(n\) 为偶数答案为 \(all-|n/2-k|\)。复杂度 \(O(m\log n)\)

C - No Collision Moves

显然合法条件就是画在二分图上要不交。

构造方案就是,对于连续一段向小的连,从小往大操作,反之同理。复杂度 \(O(n)\)

D - Non-Ancestor Matching

\(s\) 为所有儿子的 \(sz\) 和,若不存在 \(2sz_v>s\),则答案为 \(s/2\)。否则递归 \(v\) 计算子树 \(v\) 的答案 \(r\),若 \(2(sz_v-2r)\le s-2r\),则说明我们可以消掉 \(v\)\([0,r]\) 范围内对点,则答案为 \(s/2\);否则答案为 \(r+\sum _{i\ne v}sz_i\),复杂度 \(O(n)\)

E - Subset Product Problem

Meeting in Middle。对后 10 位的超集更新,对前 10 位的子集查询。复杂度 \(O(n\sqrt A)\)

posted @ 2025-09-06 22:06  dengchengyu  阅读(121)  评论(0)    收藏  举报