记录一类统计结果的计数题的方法
很多题目就是初始给你一个对象,然后就是你可以对这个对象进行若干次操作,然后问你能有多少结果
这一类题目就是会遇到非常棘手的情况,就是可能有多个生成路径能生成同一个结果,然后统计路径就是会记重的,基本的做法是考虑给定一个序列,你能否检查其是否能被生成,例题的话参考
P4684 [IOI2008] Fish
这是一种贪心的生成方法。具体的,我们规定每个集合在其最大捕捞鱼处被统计,然后可以使用一系列方式双指针等功能来实现。
但是如果遇到了某些题目是无法被贪心等方法来验证的怎么办呢,假如其要使用
dp
来实现,我们就可以考虑dp套dp
, 例题就参考某次模拟赛T2
题目描述
我们知道,麻将想要胡牌,手牌必须是四个面子和一个雀头(或七个对子、国士无双...但我们不管),共 张牌。
其中面子是顺子( )或刻子( )的三张牌,雀头是相同的两张牌。
打麻将时,大相公是指由于你出老千,手牌数大于 。大相公原本是不能胡牌的(并且还要被剁手),但在本题
中,只要一副手牌能被分为若干个面子和若干个雀头,就可以胡牌(例如
可以胡牌)。
现在我们只考虑萬(万),不考虑条、筒、字牌,且每种牌不只有四张,而是无限张。你有 张手牌,有一部分给
定,其余不知道是 ~ 萬中的哪一张。问你有多少种胡牌的手牌可能方式。我们只对集合计数,假设你的手牌是
,那么 和 算一种。
1 100
100 1 0 1 0
2 1
输入格式
第一行一个整数 ,表示手牌张数。
第二行一个长度为 的字符串表示你的手牌。
如果字符串中某个字符为 ~ ,那么表示这张牌是对应的萬子。
如果字符串中某个字符为 ? ,那么表示这张牌是未知牌。
例如字符串 12?3?1?22? 表示你的手牌中有 张确定牌“一萬、一萬、二萬、二萬、二萬、三萬”,还有 张未知牌。
而字符串 ??????? 则表示你的手牌中没有确定牌,只有 张未知牌。
输出格式
一行一个整数,表示答案对 取模后的值。
标签:二萬,胡牌,张牌,手牌,dp,字符串,方法,多少,统计
From: https://www.cnblogs.com/chenhx-xcpc/p/18499358