CF2066B White Magic题解

Sol

注意到选取包含 \(2\)\(0\) 的序列一定不符合条件,因为如果把 \(2\)\(0\) 一个分到前缀一个分到后缀,那么前缀 \(\min\)\(0\),后缀 \(\operatorname{mex}\) 大于 \(0\),不满足条件。

同时,可以发现如果没有选 \(0\),那么一定满足条件,因为前缀 \(\min\) 一定大于 \(0\),而后缀 \(\operatorname{mex}\) 一定为 \(0\)

记序列中的 \(0\) 的数量为 \(cnt\),那么答案一定为 \(n-cnt\)\(n-cnt+1\)

那么接下来就是判断答案是否选了 \(0\),不难发现,如果选 \(0\),那么选第一个 \(0\) 一定不劣,因为包含 \(0\) 的前缀一定满足条件,选第一个 \(0\) 可以保证包含 \(0\) 的前缀最多,此时检查选第一个 \(0\) 和其他所有非 \(0\) 的元素是否合法,如果合法答案为 \(n-cnt+1\),否则为 \(n-cnt\)

Code

Link

posted @ 2025-02-13 21:02  incra  阅读(30)  评论(0)    收藏  举报