P7147 [THUPC2021初赛]麻将模拟器 题解
作者:互联网
做完 pkusc2022 day2t3 雀圣之后跑来做这题。
首先我们考虑雀圣那题。那个题是说给你一副 \(13\) 张的手牌,让你算向听数。设 \(dp[i][j][0/1][p1][p2][up][dn]=0/1\) 表示考虑到 \(i\) 花色第 \(j\) 张牌,是否已经有雀头,上张牌剩下 \(p1\) 张,这张牌剩下 \(p2\) 张,已经加了 \(up\) 张,已经扔了 \(dn\) 张的状态是否可以达到。枚举当前这张牌加几张、删几张,是否作为雀头,能作为刻子就一定作为刻子,和前两张牌组成顺子,然后转移一下。每一种花色转移完之后清掉除 \(p1=p2=0\) 之外的所有状态即可。
有了这个 dp 这题剩下的就不难了。特殊牌的话就先处理一下,PASS
就多跳一个,DOUBLE
和 REVERSE
就定义一个 \(delta=1/-1\),每次加 \(delta\) 表示顺/逆时针即可。进入打牌阶段之后,对每个玩家记一个当前和牌距离。打牌就是每次枚举打哪一张,dp算一下取一个和牌距离最短且最大的,打出去之后再对另外的玩家
标签:p2,p1,题解,up,张牌,初赛,delta,P7147,dp 来源: https://www.cnblogs.com/winterfrost/p/16319071.html