专栏文章

[题解] ARC193C Grid Coloring 3

AT_arc193_c题解参与者 4已保存评论 8

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
8 条
当前快照
1 份
快照标识符
@mipybwjb
此快照首次捕获于
2025/12/03 19:56
3 个月前
此快照最后确认于
2025/12/03 19:56
3 个月前
查看原文
时光倒流,判定是第一次删一个同色的十字,之后每次可以删同色的行、列、十字,能删空就合法。
fi,jf_{i, j} 表示 iijj 列的网格中,能通过删同色的行、列、十字删空的个数。
转移时找到同色的位置集合,随便删一个的话会算重,考虑每次钦定一个子集并删掉,容斥计算答案。
对于一个网格,有两种情况:同色位置的集合中只有行或只有列、同色位置的集合中同时有行和列。
对于同色位置的集合中恰好只有 kk 行的情况,钦定 jj 行同色,那么要求 1jk(kj)cj=1\displaystyle \sum_{1 \le j \le k} \binom{k}{j} c_j = 1,不难得到容斥系数 cj=(1)j+1c_j = (-1)^{j + 1}。列的情况是相同的。
对于同色位置的集合中恰好有 iijj 列的情况,在只钦定行和只钦定列的时候已经被算了两次,所以我们需要在同时钦定行列的时候让它的贡献为 1-1
钦定 xxyy 列同色,那么就是要求 1xi1yj(ix)(jy)cx,y=1\displaystyle \sum_{1 \le x \le i} \sum_{1 \le y \le j} \binom{i}{x} \binom{j}{y} c_{x, y} = -1,可以得到 cx,y=(1)x+y+1c_{x, y} = (-1)^{x + y + 1}
这样我们就得到了转移:
fi,j=1xi(1)x+1(ix)Cxfix,j+1yj(1)y+1(jy)Cyfi,jy+1xi1yj(1)x+y+1(ix)(jy)Cfix,jy\begin{aligned} f_{i, j} &= \sum_{1 \le x \le i} (-1)^{x+1} \binom{i}{x}C^{x} f_{i - x, j} \\ &+ \sum_{1 \le y \le j} (-1)^{y + 1} \binom{j}{y} C^{y} f_{i, j - y} \\ &+ \sum_{1 \le x \le i} \sum_{1 \le y \le j} (-1)^{x + y + 1} \binom{i}{x} \binom{j}{y} C f_{i - x, j - y} \end{aligned}
统计答案就是上面的第三种情况要求贡献为 11,所以令容斥系数 cx,y=(1)x+yc_{x, y} = (-1)^{x + y} 即可得到:
ans=1in1jm(1)i+j(ni)(mj)Cfni,mjans = \sum_{1 \le i \le n} \sum_{1 \le j \le m} (-1)^{i + j} \binom{n}{i} \binom{m}{j} C f_{n - i, m - j}
这样就得到了 O(n4)O(n^4) 的做法。
瓶颈在于同时钦定行列的情况的转移,也就是计算:
1xi1yj(1)x+y+1(ix)(jy)Cfix,jy\sum_{1 \le x \le i} \sum_{1 \le y \le j} (-1)^{x +y +1} \binom{i}{x} \binom{j}{y} Cf_{i - x, j - y}
gi,j=1yj(jy)(1)y+1fi,jy\displaystyle g_{i, j} = \sum_{1 \le y \le j} \binom{j}{y} (-1)^{y + 1} f_{i, j - y},那么转移就变成了:
fi,j=1xi(1)x+1(ix)Cxfix,j+1yj(1)y+1(jy)Cyfi,jy+1xi(1)x(ix)Cgix,jgi,j=1yj(jy)(1)y+1fi,jy\begin{aligned} f_{i, j} &= \sum_{1 \le x \le i} (-1)^{x+1} \binom{i}{x}C^{x} f_{i - x, j} \\ &+ \sum_{1 \le y \le j} (-1)^{y + 1} \binom{j}{y} C^{y} f_{i, j - y} \\ &+ \sum_{1 \le x \le i} (-1)^x \binom{i}{x} C g_{i - x, j} \\ g_{i, j} &= \sum_{1 \le y \le j} \binom{j}{y} (-1)^{y + 1} f_{i, j - y} \end{aligned}
这样就做到了 O(n3)O(n^3)

评论

8 条评论,欢迎与作者交流。

正在加载评论...