做题记录 25.3.18

\(\textcolor{purple}\odot\) CF1993E Xor-Grid Problem

\(a\) 新增一行一列,\(a_{n+1,i}\gets \bigoplus_{j=1}^n a_{j,i}\),列同理,\(a_{n+1,m+1}\) 为整个矩阵的异或和

则可证最终得到的矩阵为这个 \((n+1)\times (m+1)\) 矩阵去掉一行一列后重排得到的结果,且该矩阵去掉一行一列后重排的结果一定可以通过若干次题目的操作得到

\(f_{i,j}\) 表示去掉第 \(i\) 列后,选择子集为 \(j\) 的行,行之间的最小贡献,\(g_{i,j}\) 与之对称,两者可以预处理两行之间和两列之间的贡献后求出,时间复杂度 \(O(m^2n^2+mn^22^n+nm^22^m)\)

\(U_1=\{1,2,\cdots,n+1\}\)\(U_2=\{1,2,\cdots,m+1\}\),则答案为 \(\min_{1\le i\le n+1}\min_{1\le j\le m+1} f_{j,U_1/\{i\}}+g_{i,U_2/\{j\}}\)

总时间复杂度 \(O(\sum m^2n^2+mn^22^n+nm^22^m)\)

代码

参考

\(\textcolor{purple}\odot\) CF1991G Grid Reset

可证不存在无解的情况

将矩阵划分为 \(4\) 个部分,\((1\sim k,1\sim k)\)\((k+1\sim n,1\sim k)\)\((1\sim k,k+1\sim m)\)\((k+1\sim n,k+1\sim m)\)

\(\text{H}\) 型的填在前两个区域,\(\text{V}\) 型的填在第一和第三个区域,前者优先在第二个区域中从下向上,填满后若区域三也满了,则选择区域三的一行消除,若已经消空则从上到下填,后者与之对称

时间复杂度 \(O(\sum p)\),细节较多

代码

参考

posted @ 2025-03-19 11:03  Hstry  阅读(5)  评论(0)    收藏  举报