第四十八次
A
相邻格子容易统计,一个点能跳到的点数即其一步能跳到的点所在连通块大小之和。
并查集维护之。
B
选择的子串的左端点可以确定为第一个可以变优的位置 $p$,只需要确定右端点。
将原串以 $p$ 开头的后缀基因突变为 $S$,则可选的子串基因突变后对应 $S$ 的后缀,
记 $S$ 字典序最小的后缀为 $p$,则最终选择的子串基因突变后对应的后缀一定包含 $p$ 作为前缀。
求出 $S$ 的 SA,依次判断即可。
C
$n\le 12$
搜出最小表示(颜色首次出现位置单调增),乘上排列数。
$m=n-1$
设 $f_{i,j}$ 表示 $i$ 点染 $j$ 色时 $i$ 子树染色方案,则 $f_{u,i}=\sum\limits_{v\in\text{son}(u)}\text{same}(u,v)\times f_{v,i}+\text{diff}(u,v)\times\sum\limits_{j\ne i}f_{v,j}$。
正解
啥玩意,看不懂啊。
D
对每次询问,先求出最优方案下,左端点最多往右端点逼近几步,
然后同样求出最优方案下,右端点最多往逼近后的左端点逼近几步,
最后再逼近一步使左右端点重合即可。
倍增优化这个逼近的过程。