CF1237F

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))

原文地址:https://www.cnblogs.com/Soulist/p/13672768.html