A, B, C

略。

D

感觉晚上的 wrp 是超级逆天。
显然最后的序列两个相邻的数中间不能有小于这两个数的数, 设 $f_i$ 表示钦定选 $i$ 这个位置上的数, 考虑 $i \rightarrow j$ 的转移, 转移合法当且仅当 $r_i \geq l_j - 1$, $l, r$ 表示这个值作为最小值的区间。 可以写个 BIT 就过了。 一个经典的做法是, 可以在求 $L, R$ 的过程中顺带实现这个转移, 前缀和可以做到线性。

E

傻逼题, 一眼就是全变成0然后 行列建立点, 原图中一个位置对应一条边, 要么贡献 + 1, 要么贡献 -1, 跑最小费用最大流即可。

F

考虑计算两部分贡献, 一个是修改一个字符会增加多少回文串, 一个是修改一个字符会减少多少回文串。

维护 $add[i][j]$ 表示把 $i$ 这个位置字符改成 $j$ 会多多少回文串, 这个东西就是枚举每个回文中心, 考虑两端的字符, 使用二分+哈希求LCP即可实现。

维护 $del[i]$ 表示修改 $i$ 这个位置字符会少多少回文串, 那就枚举所有回文中心, 发现其实是回文中心左边右边分别加等差数列的形式, 差分即可。

然后剩下就随便做了。