考虑维护出每个位置向后的第一个 2,0,5,6,枚举 l 找到不合法的 r 对应的区间,也就是出现了 2025 没有出现 2026,二维差分做区间加等差数列即可。
F
感觉就是个细节不少的分讨题,场切了,但为啥写完这个 F 过了一会给我小号封了,何意味啊。
首先考虑找出排列的置换环,你发现最终 Alice 能赢的条件其实是,每个置换环的颜色必须相同,于是 Bob 希望尽可能让置换环的颜色不同。
考虑 Bob 的最优策略,每次选择 k 个环,每个环只染一个点,这样 Alice 在下次操作必须把 Bob 选的每个环全部染色,否则 Bob 就赢了。
首先特判掉 k=1 的情况,因为这种情况会与后面很多冲突。考虑 k = 1 时只要存在长度 \ge 3 的环则 Alice 必败,否则考虑是否存在 k=2,若存在 k=2 的环,则谁先碰这个环谁就输了,因为对手可以根据需求填成相同/不同的颜色,考虑自环数量的奇偶性即可知道谁先这个环。否则只有自环,Alice 必胜。
对于 k \ne 1,若存在 \ge k+2 的置换环,则 Alice 必败,因为第一回合无法染完这个环,而 Bob 只需要染环上的一个点就赢了。若存在 \ge 2 个长度为 k+1 的环 Alice 同样必败,因为 Bob 可以从这两个环各选一个点,而 Alice 需要进行 2k 次操作才能填好这两个环。
这是经典的 Nim 博弈,先手把数量变为 k + 1 的倍数,后手就输了,于是 Alice 想赢必须在第一手把所有非自环填好的同时,把自环数量拿到剩余 k+1 的倍数个。
剩余情况场上只剩下 \le k 的环,考虑 Bob 要怎么尽量给 Alice 制造麻烦,一定是尽可能拿长度大的环。考虑一个长度为 len 的环,Bob 可以通过选其中一个点给 Alice 造成 len - 1 的代价,于是 Alice 要尽可能消除这些环。这是一个 01 背包问题,每个物品的价值是 len - 1,花费是 len,我们希望删掉尽可能多的,使得留下的最大的 k 个的 \sum len - 1 不超过 k+1。