一道搜索+恶心的DP---毒瘤题
...如果没有zqy夶佬思路提示基本想不出来
为什么这样是对的呢?因为只有顺子与点数相连有关(必须连着)而散牌(几带几)与号码相连无关
暴力搜索顺子可以接受吧...注意细节长度必须大于5,32就行。
重点是DP打散牌部分(蒟蒻不会贪心)
由于散牌与号码(点数)无关所以设DP[ a ][ b ][ c ][ d ][ e ]为有a张单牌,b张对,c对三连d个炸弹,e张王的手牌状态
单张对子和三张牌就不说了,转移道理很简单
先考虑三带一:普通牌由[ a-1 ][ c-1 ]的状态转移过来
同理有四带二:可以由任意一个炸弹和两张单牌或两对牌组成
本题中王不算对子也就是我们在[ d-1 ]的基础上可以有
火箭(王炸)两张王,[ e-2 ]
这样就完事了吗不,考虑c和d号码相同可以拆牌
这里拆牌才是本题这种解法的关键
读到这里,可能会有两个问题
1.为什麼拆牌可能会更新最小值
2.为什么只能拆c和d,不能拆b?
3.为什么不能成拆更多的牌如[ c-2 ]?
答案1:其实反着想并不好想但我们应考虑这样一个问題:
比如现在我们有。按照正常DP出的话不能是顺子,出散牌的话只能三个三张牌出三次
但显然我们可以三带一+三带二两次出出去
所以峩们这里就相当与将一套三张牌拆成一张一对,更新了最小值
答案2:额成套的散牌只有三带一,三带一对四带二和四带一对
观察发现,几带几都是可以有对的不需要拆呀。。
而且对只能拆两张单直接出一对肯定定比出两张单好,次数少1嘛
答案3:这个问题其实不难想
转移时直接考虑到,已转移过不需再转移
好了说了这么多,下面给出代码:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。