CF1237F
给定一个大小为 (n imes m) 的矩形,需要放置部分 (1 imes 2) 的骨牌,满足不存在两张骨牌占据了同一行或者同一列。
现在已经放了 (k) 张骨牌,求在这个矩形上额外放置若干张骨牌的方案数(骨牌无标号)。
(n,mle 3600,kle 2400)
Solution
维度分离真的是一个好东西。
你会发现我们可以将问题视为一维的情况,然后只需要将两个一维维的情况配对起来就可以了(这样就是二维了)。
所以考虑一维的情况,即给定长度为 (n/m) 的序列,部分位置已经放置了元素,你需要放置恰好 (k) 个 (1/2) 的方案数。
设 (f_{i,j}) 表示当前放置了 (j) 个 (2) 的方案数,转移枚举当前位置放 2 / 不放 的情况即可,然后剩余的位置全部塞 (1) 即可。
最后统计答案的时候枚举 (1,2) 在第一个维度上的方案数即可。复杂度为 (mathcal O(n^2+m^2))