比赛题目 - 竞赛平台 (xinyoudui.com)
先考虑暴力做法
50分:DP(考虑本质不同的状态只有选择了前 x 个中的 y 个改为异或)
70分:优化一下:不难发现无论接下来的操作是什么,x+2 经过这些操作的值都会比 x 大。所以只需要记录选择了前 x 个中的 y 个改为异或,当前值为奇数/偶数的最大值即可!进一步地发现每次操作后奇偶性一定会改变,所以只需维护最大值即可。
100分:注意到无论是哪一种收益,每次操作后数的奇偶性都会变化。
考察异或的性质:
x⊕1={x−1(x is odd)或者x+1(x is even)所以可以知道,异或放在奇数个事件时等价于+1,放在偶数个事件时等价于 −1。于是我们得出了每个事件坦白的收益,按照收益排序后输出即可