$\textrm{A. Submission Bait}$
如果序列中存在某个数出现次数为奇数,那么输出 $\textrm{YES}$,否则输出 $\textrm{NO}$。
$\textrm{B. Array Craft}$
将 $[x,y]$ 全部定为 $-1$,然后 $(y,n]$ 段 $-1,1$ 交替,$[1,x)$ 段中由 $x-1$ 开始 $-1,1$ 交替。
$\textrm{C. Mad MAD Sum}$
发现进行一次 $\textrm{MAD}$ 操作后,序列会变成有序,然后我们发现样例中的序列 $\textrm{2 1 1 2}$ 操作一次后变为 $\textrm{0 0 1 2}$,在操作之后变为 $\textrm{0 0 0 0}$,
所以我们手动操作两次之后,序列的每一段连续段,处了最后一段外,长度都至少为 $2$,于是发现没操作一次序列的一个最大值会变为 $0$,所以我们设 $s_i = \sum_{j=1}^i a_j$,则之后 $sum := sum + \sum_{i=1}^n s_i$。
$\textrm{D. Grid Puzzle}$
$结论1$
连续的两行内最多只有一个 $2\times 2$,否则会被整行消除代替。
设 $dp_{i,0/1}$ 表示前 $i$ 行内,第 $i$ 行的前两个是否被消除的情况下的最小消除步数。
然后 $dp$ 即可。
$\textrm{E1&E2. Catch the Mole}$
交互题。
我们现设一个常量 $B$,然后执行 $B$ 次无意义操作,具体地,找到一个叶节点,查询它,若返回 $1$ 则成功,否则执行 $B$ 次重复查询。
设 $h_i$ 表示 $i$ 走到其子树内最深的节点所需的步数。
假设我们已经查询到 $u$ 的子树,且目前目标一定在子树内,对于 $v$ 的其中一个儿子节点,若 $h_v + 1 < B$,那么说明如果目标初始在 $v$ 子树内,那么现在目标一定在 $u$ 的祖先节点上而不在 $u$ 的子树内,与条件不符。
故 $v$ 一定要满足 $h_v + 1 \ge B$,我们查询所有 $v$,如果返回 $0$,则说明我们可以删除 $v$ 的子树,$n$ 至少减少 $B$;如果返回 $1$ 那么我们直接将 $u$ 跳到 $v$。
这样下来有个疑问,如果树是一条链,那么我们需要执行的操作数会超,所以我们的优化是如果 $v$ 为最后一个被查询的,那么不查询它,直接跳到 $v$;否则它不是被最后一个查询的,那么说明它后面还有至少一个 $v’$ 会在不被询问的情况下删除。
总共的查询次数为 $B+\frac{n}{B}$,$B=70$,可以通过。