D
枚举是哪一位相同,情况为 \(00\) 还是 \(11\),然后用前缀和和后缀和求一下即可。
\(pre_{j,i}\) 表示第一位为 \(j\),前 \(i\) 位的每两个相同的字符均不相同的情况,\(suf\) 同理。
code
E
从后往前考虑。
每一种颜色能染上这一行 / 列没有被染色的格子数,所以记录一下每一行,每一列有多少个格子染了色和每一行和每一列有没有被染色。应为我们是倒叙的,所以这几个数值都是单调不减的,非常好维护。