T487543 斗地主之战
题目背景
斗地主是众所周知的扑克玩法。$zengxuheng$ 也很喜欢玩。
斗地主中 `Joker` (大王) $>$ `joker`(小王)$> 2>A>K>Q>J>10>9>8>7>6>5>4>3$。
斗地主牌型如下:
1. 火箭:即双王(大王和小王),最大的牌
1. 炸弹:四张相同的数值牌(如四个 $7$)
1. 单牌:单个牌(如红桃 $5$)
1. 对牌:数值相同的牌(如梅花 $4$ 加方块 $4$)
1. 三张牌:数值相同的三张牌(如 $3$ 个J)
1. 三带一:数值相同的三张牌 $+$ 一张单牌。例如:$333+6$
1. 三带二:数值相同的三张牌 $+$ 一对牌。例如:$333+99$
1. 单顺:五张或更多的连续单牌。不包括 $2$ 和大小王(如 $34567$、$10JQK1$)
1. 双顺:三对或更多的连续对牌。不包括 $2$ 和大小王(如$334455$、$JJQQKK11$)
1. 三顺:两个或更多的连续三张牌。不包括 $2$ 和双王(如 $333444$,$333444555$)
1. 飞机带翅膀:三顺+同数量的单牌或对牌(如 $333444+7+9$、$333444+66+77$)(飞机中如果含有炸弹,则翅膀中不能带炸弹中的牌)
1. 四带二:四张数值相同的牌+两个单牌或对牌(如 $5555+3+8$、$5555+44+77$)(不是炸弹)
需要图片[看这张](https://cdn.luogu.com.cn/upload/pic/1827.png)
几个特殊性质:
1. 除火箭外炸弹可以炸掉任何牌型。
1. 牌不比花色,只比点数。
例如别人出方片 $7$ 你不能出黑桃 $7$ 来压。
1. 顺子之间必须要牌数相同才算同一牌型。
1. 牌型之间不能混,除出炸弹和火箭外。
例如对方出了单牌 $7$ 你只能出比它大的单牌或炸弹或火箭。
1. 三张牌带两张牌:例如 $888+66$,你不可以拿 $888+99$压,因为带的牌不计入比较。
题目描述
现在你有 $n$ 张牌,有 $m$ 次回合。
每次回合对方出几张牌,满足斗地主牌型。
如果你可以压对方的牌,你可以选择压或不要。压了你的牌就会去掉你压的牌。当然如果你压不了对方的牌,你只能不要。
现在开启了一个积分规则,每压一个得一分,不要不得分。
你将会提前知道对手会出的所有牌。并可以根据最优策略让你的积分总和最大。
输入格式
第一行,两个整数 $n$,$m$。
第二行,$n$ 个整数,表示你的牌。
第 $3$ 到 $3+m$ 行,每行几个整数代表对方第 $i$ 轮出出的牌,以 $0$ 结尾。
输出格式
一行一个整数,表示你能获得的最大积分。
说明/提示
对于 $30\%$ 的数据,有 $n \le 50,m \le 5$
对于 $50\%$ 的数据,有 $n \le 100,m \le 50$
对于 $100\%$ 的数据,有$1 \le n,m \le 10^5$
## 样例1解释
首先对手出 $\texttt{JJJ}$,为了比他大,要出 $\texttt{KKK}$,得到一分。
接着对手出对$\texttt{4}$,这时以下对子可以打
$\texttt{55}$,
$\texttt{QQ}$,
$\texttt{66}$.
但是,我们要为下面的顺子着想,
比他大的顺子只有
5,6,7,8,9或6,7,8,9,10.
所以我们只能打出$\texttt{QQ}$或
$\texttt{55}$得到一分
然后对手打出3,4,5,6,7,我们再打出6,7,8,9,10,得到一分
接着对手出$\texttt{1}$,我们可以选择用$\texttt{2}$ 或 $\texttt{Joker}$得到一分,但是对面还要打出$\texttt{joker}$ ,所以为了应对对手的$\texttt{joker}$,这时只能打出$\texttt{2}$,得到一分
最后对手打出$\texttt{joker}$,我们只需打出$\texttt{Joker}$就可以了,得到一分