ARC 205

提交

A

容易发现所有合法的 \(2\times 2\) 格子按照从左到右从上到下更改左上方的格子,就可以互不影响。那么处理出合法位置,二位前缀和即可。

B

更改的范围很广,我认为可以更改到“任意”方案。

任意方案要满足:发现每一次修改,相连的边是黑色的个数的奇偶性不变。

那么就有一些点只能有 \(n-2\) 条黑色的连边,设这个个数为 \(cnt\)。如果 \(cnt\) 为偶数,那么有 \(cnt/2\) 条边不能染黑,否则有 \((cnt+3)/2\) 条(此时一定是奇数个偶数,有三个点无法匹配,找另一个点放弃他连向三个点的边)。\(\binom{n}{2}\) 减去这个就可以了。

C

发现如果有区间包含,一定是不能。

如果区间有交,那么必须方向是相同的。

处理出相交的连通块,块内按照顺序排序就可以了。

D

发现如果一个树中最大的子树不大于子树大小和的两倍,就能尽量删完(\(0/1\))。否则一定可以把除了最大子树的点全部匹配上,递归贪心做即可。

具体的,把“可以连到子树外的次数”作为一个状态,优先连到“祖先”节点。

E

考虑根号分治。前 \(10\) 位后 \(10\) 位分开,这个样子每一次插入就查到前 \(10\) 位相同的数组中更新,要更新 \(\mathcal{O}(2^{10})\) 次,询问的时候枚举前 \(10\) 位的值即可。

那么复杂度 \(\mathcal{O}(2^{10}n)\)

posted @ 2025-09-06 22:38  SFlyer  阅读(26)  评论(0)    收藏  举报