1.12 CW 模拟赛 T2. 矩阵删除
思路
赛时的想法是对于每一行维护本质相同的操作, 因为并集的原因基本上没法优化到 \(\mathcal{O} (n^4)\) 以下, 所以弃掉
考虑令 \(f_{i, j}\) 表示第 \(i\) 行删除 \(j\) 列的方案数, 显然会算重
考虑去重
令 \(g_{i, j}\) 表示删除 \((i, j)\) 和删除 \((i, j - 1)\) 算重的方案数
\(s_{i, j} = s_{i, j - 1}\) 时有转移
\[g_{i, j} \gets \sum_{p = j - k}^{j + k - 1} f_{i - 1, p} - \sum_{p = j - k + 1}^{j + k - 1} g_{i - 1, p}
\]
其中 \(\displaystyle \sum_{p = j - k}^{j + k - 1} f_{i - 1, p}\) 表示都考虑到了的区间, \(\displaystyle \sum_{p = j - k + 1}^{j + k - 1} g_{i - 1, p}\) 表示区间中等价的数量
考虑 \(f\) 的转移
\[f_{i, j} \gets \sum_{p = j - k}^{j + k} f_{i - 1, p} - \sum_{p = j - k + 1}^{j + k} g_{i - 1, p}
\]
其中 \(\displaystyle \sum_{p = j - k}^{j + k} f_{i - 1, p}\) 表示应当考虑到的区间, \(\displaystyle \sum_{p = j - k + 1}^{j + k} g_{i - 1, p}\) 表示区间中等价的数量
总结
一类去重题, 不具有广泛性, 看看就好
具体的, 只有对于这种可以计算出相邻两个 \(f\) 重了多少的才能使用这种方法

浙公网安备 33010602011771号