三维积木 - dp

题目大意:
有三种颜色的大小相同的正方形积木各A,B,C个,你要在一个n*n大小的地盘上搭起这些积木,问有多少种搭积木的方案使得其主视图只有一种颜色。
对1e9+7取模。A,B,C,n<=25。

题解:
考虑枚举哪一个颜色在最前面,剩下两个没有本质区别(算完后乘一个组合数)。每一列独立,做一个卷积即可得到。因此考虑每一列的情况。
现在要计算某一列放a个1和b个2的答案,枚举高度h,那么正面看去恰好h个1,因此先摆出高度恰好为h的方案,然后钦定这看到的h个是1,剩余的随意组合。
高度恰好为h的方案,相当于n个变量的和等于a+b并且每个数值不超过h并且存在至少一个数值是h。第三个限制可以忽略,就是个经典容斥了。这部分O(n^3)。
复杂度O(n^5),可以用NTT优化第一部分的卷积。


猜你喜欢

转载自blog.csdn.net/Mys_C_K/article/details/84403259