$\mathcal{A.\ Bazoka\ and\ Mocha’s\ Array}$
将序列首尾相连,发现不管怎么操作,序列都会在换上出现,枚举起点即可。
$\mathcal{B.\ 378QAQ\ and\ Mocha’s\ Array}$
发现最小值一定取,然后取去除最小值倍数的数的最小值。
$\mathcal{C.\ Chamo\ and\ Mocha’s\ Array}$
首先二分,然后把大于等于 $mid$ 当成 $1$,小于 $mid$ 的当成 $0$。
最后的值大于等于 $mid$ 当且仅当有两个 $1$ 距离小于等于 $2$。
$\mathcal{D.\ Paint\ the\ Tree}$
只有 $a,b$ 之间的点才有可能被当成相遇点,相遇点为 $a,b$ 先后进过的第一个点。
$\mathcal{E.\ Chain\ Queries}$
按照 $bfs$ 序,发现一个点的儿子都是连续的,用线段树维护度数,黑点成链当且仅当 $\sum_{i\in S} d_i = 2 (|S|-1),\max_{i\in S} d_i \leq 2$,$S$ 为黑点集合。
$\sum_{i\in S} d_i$ 容易维护,只要实时维护所有点相邻的黑点数量,然后维护 $ans$,若将 $u$ 变为黑点,则 $ans:= ans+d_u$,否则 $ans:=ans-d_u$。
$\max_{i\in S} d_i$ 可以用线段树维护最大值,维护区间 $\max$,将点 $u$ 变为黑点时将 $u$ 点上的信息赋值为 $d_u$,否则赋值为 $-\infty$。