最近麻将题写上瘾了……(
显然地考虑枚举听的那张牌,然后判定是否可以和牌。
考虑 DP,设 fi,0/1,j,k 表示考虑了前 i 种牌,无 / 有雀头,除去做面子的牌还有 j 组 (i−1,i),k 张 i 的情况下最多可以做多少面子。
则枚举第 i 种牌预留多少张,即可转移。
每次转移的时候考虑拿 2 张出来组雀头就行了。
最后因为刚好是 3m+2 张,所以肯定不会有多的 (n−1,n) 或单独的 n,故只有 fn,1,0,0=m 时才算和牌。
代码:
1 |
|
最近麻将题写上瘾了……(
显然地考虑枚举听的那张牌,然后判定是否可以和牌。
考虑 DP,设 fi,0/1,j,k 表示考虑了前 i 种牌,无 / 有雀头,除去做面子的牌还有 j 组 (i−1,i),k 张 i 的情况下最多可以做多少面子。
则枚举第 i 种牌预留多少张,即可转移。
每次转移的时候考虑拿 2 张出来组雀头就行了。
最后因为刚好是 3m+2 张,所以肯定不会有多的 (n−1,n) 或单独的 n,故只有 fn,1,0,0=m 时才算和牌。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment