SP16381 RUMMY - Help Vishnu with his points

题目描述

Vishnu非常热爱拉米牌游戏。这是一种使用标准扑克牌进行的游戏,每副牌由52张组成,含有4种花色,每种花色共有13种牌面等级。不过,在拉米游戏中,一局可以使用多副牌。在这道题中,我们只关注牌面等级,不考虑花色。牌面等级从低到高依次为:A, 2, 3, ..., 10, J, Q, K, A。A牌是特殊的,可以同时作为最低(在2之前)和最高(在K之后)等级。 拉米游戏有多种玩法,我们在这里采用的规则是:每位玩家手中正好有13张牌。通过构建牌组来打出手中的牌,每张牌最多只能属于一个牌组。有效的牌组有两种: 1. 正好三张相同等级的牌,例如 (2, 2, 2) 或 (Q, Q, Q)。 2. 至少由三张连续等级的牌组成的序列。 序列是一组连续牌面等级的牌,每个等级最多一张。例子包括:(2, 3, 4, 5), (Q, K, A), (A, 2, 3), (9, 10, J, Q)。须注意,(K, A, 2) 不是有效的序列,因为同一张A牌不能同时代表最低和最高等级。 此外,可以选择某一个牌面等级作为百搭牌(记为JK)。在构建序列时,百搭牌可以替代任意牌面等级。例如:(2, JK, 4), (J, Q, JK, A)。一手牌中可以有多个百搭牌,每个百搭牌在同一个序列中可以代表不同的牌面等级。举例来说:(7, JK, 9, JK, J), (JK, 4, JK, JK, 7)。百搭牌在构建类型(1)的牌组时无效,例如 (5, 5, JK) 是不被允许的,但 (JK, JK, JK) 是有效的。 每张牌有其对应的点数,2至10的牌的点数等于其牌面数字,而A, J, Q, K每张为10点,百搭牌则为0点。手牌的点数是所有牌的点数之和。游戏的目标是在移除一些牌组之后(可以不移除),使得剩余手牌的点数最低。请帮助Vishnu找出给定手牌的最优得分。

输入格式

第一行有一个整数 $T$($1 \le T \le 20$),表示有多少组测试数据。接下来的 $T$ 行中,每行有14个不超过13的正整数。前13个数字表示Vishnu手中的牌,第14个数字表示选定的百搭牌的等级。数字1, 11, 12, 13分别代表A, J, Q, K。同一等级的牌,包含百搭牌在内,可以有无限多。牌可以随意重新排列以构成牌组。

输出格式

对于每组测试数据,输出一行包含一个整数,表示在给定手牌条件下,Vishnu能够得到的最低点数。 **本翻译由 AI 自动生成**