$\large{A.\ MEXanized\ Array}$
$\large{B.\ Friendly\ Arrays}$
当 $n$ 为奇数时,选一个数 $x$ 就会在异或答案上将 $x$ 为 $1$ 的位置变为 $1$ ,所以选了后答案变大。
当 $n$ 为偶数时,同理,选了后答案变小。
$\large{C.\ Colorful\ Table}$
对于数 $x$ ,满足数 $x$ 一定在序列中出现。
设 $y$ 表示第一个大于等于 $x$ 的数的位置, $z$ 表示最后一个大于等于 $x$ 的数的位置。
矩阵左上角为 $(y,y)$ 右下角为 $(z,z)$ 。
$\large{D.\ Prefix\ Purchase}$
- 一定是选的次数越多越好,次数相同时满足选的数越靠后。
- 设 $mnp_i$ 表示第 $i$ 个到最后一个中 $c$ 最小的位置, $c$ 相同则取最后的。
- 选的次数最大则在 $mnp_1$ 的地方花费
- 余下的钱用来将 $mnp_1$ 换成后面的数,这样就形成了递归。
- 实现细节:换的次数必须小于等于原先买的次数,不能买任何东西的时候就退出。