题解:P12576 [UOI 2021] 数字图

· · 题解

首先还是照例,感谢队长Purslane的指导与推荐。

实际上,由于并不确定后续状态,所以直接做是不好做的,不妨考虑特殊性质。

可以发现,在 1\leq a_i\leq 2 的特殊性质中,不妨考虑怎么求。假设最开始的 1 点是 1,那么显然是比较劣的,考虑在 1 可达的点有没有 2,如果有就走到 2,显然这样是不劣的。没有的话就随便了,无论走还是不走,后手都会直接停止游戏,取 1;但是如果最开始的 1 点是 2,那么直接停止游戏即可。轮到后手操作的时候同理。那么就会了只有两个数的方案。

不妨考虑把多个数的情况转成两个数的情况。考虑一个经典的二分的用法,通过二分把序列分成大于某个数和小于某个数的两部分,然后考虑。本题中也可以这么考虑,然后就转成了两个数的情况,直接做就行了。

时间复杂度为 O(n\log(\max a_i))