博主的 \(\rm bibi\) 时间!
这道题我至少学了三遍,从青丝学到白发,今天终于学懂了,我真的遍地乱哭嗷嗷嗷!இ௰இ
说句闲话:我永远爱 组合数学。
\(\frak{Description}\)
\(\frak{Solution}\)
前置知识:二项式反演,我没有骗访问量的意思啊(
对于此题,我们可以从 "至少","至多" 两个角度来思考:
\(\text{Method 1}\):"至少"
设 \(f(x,y,z)\) 为至少有 \(x\) 行 \(y\) 列未被染色,有至少 \(z\) 种颜色一个格子也没染的方案数,\(g(x,y,z)\) 就是恰好,那么答案即为 \(g(0,0,0)\). 那么就有
\(c-z+1\) 就是选择剩余可以染的 \(c-z\) 种颜色,还有一种不染色。需要特别说明的是,这里 \(f(x,y,z)\) 中的每一种情况实际上都已经固定了选哪些行、列与颜色,而非只确定了行、列与颜色的 相对 位置关系。
一般而言,既然我们求的是 "恰好",所以列式时等式左边为 "至少",这样反演之后才能得到 "恰好"。柿子长这样
这个柿子该怎么理解呢?首先我们需要知道,所谓 "至少" 实际上是 "钦定",而对于 \(f(x,y,z)\) 中的每种钦定(指 \(\binom{n}{x}\binom{m}{y}\binom{c}{z}\) 中的一种方案),它的乱选(也就是 \((c-z+1)^{(n-x)(m-y)}\))相对于自己是不会算重的。那么考虑 \(g(i,j,k)\) 中每一种方案的贡献,实际上是在它选择的行、列与颜色中再选出大小为 \(x,y,z\) 的方案(也就是 \(f(x,y,z)\) 中的某种钦定,不妨设其为 \(u\)),剩下那些没被选到的玩意,就是 \(u\) 的一种乱选。
那么二项式反演就有
\(\text{Method 2}\):"至多"
设 \(f(x,y,z)\) 为至多有 \(x\) 行 \(y\) 列被染色,有至多 \(z\) 种颜色染色的方案数,\(g(x,y,z)\) 就是恰好,那么答案即为 \(g(n,m,c)\). 那么就有
是不是觉得很奇怪?为啥 \(f(x,y,z)\) 中的每一种情况不像上种方法固定选哪些行、列与颜色,而是只确定了行、列与颜色的 相对 位置关系?看到后面你就会发现,固定选择实际上是画蛇添足,这话怎么说了跟没说一样,焯。好吧,这实际上是因为 \(g(x,y,z)\) 也没有固定选择哪些行、列与颜色,但是由于最后只需要计算 \(g(n,m,c)\),所以也相当于固定选择了行、列与颜色。
关系柿子长这样
这个柿子该怎么理解呢?虽然没有固定选择,但是 \(g(i,j,k)\) 仍然可以从 \(x,y,z\) 的相对位置中选择固定位置!
那么二项式反演就有
\(\text{Method 3}\):"杂交水稻"
由于高维反演实际上是对每一维依次反演,所以你甚至可以定义 \(f(x,y,z)\) 为至少有 \(x\) 行 \(y\) 列未被染色,有至多 \(z\) 种颜色染色的方案数,\(g(x,y,z)\) 就是恰好,那么答案即为 \(g(0,0,c)\). 那么就有
找出关系柿再反演可以得到
哎呀不管了:
自己的想法,但是不想再想一遍了 qwq.
有 \(k\) 种颜色至少染了一个格子方案数,\(g(x,y,k)\) 同理。那么(\(c+1\) 是把不填也当作一种颜色)
具体意义就是将选定 \(k\) 种颜色先染一个格子,再让剩下的格子随便乱选。燃鹅,这个式子会算重。
\(\frak{Code}\)
这里本来有一份代码,但是太长了放不下。