[dfs枚举]个性化评测系统

“因材施教”的教育方式自古有之,互联网时代,要实现真正意义上的个性化教育,离不开大数据技术的扶持。VIPKID 英语 2020 多万学员每月在课前预习、课中教学、课后复习、作业、答题测评等环节会产生超过 100100 TB 的数据增量,在对庞大数据进行分析之后,个性化评测系统会自动生成针对每个学生的量化学习报告和个性化学习图谱。

正在拿着自己的个性化学习图谱总结分析的 Dino,看到走来的小明手中拿的麻将牌,心生一题,给小明出了一道难题:“你知道怎么输出听牌吗?”看到复杂的规则,小明皱起了眉毛,请你一起来帮小明解决吧!请看题:

在麻将游戏中,有 3434 种牌,分别是 1-919 的万,1-919 的筒,1-919 的条,以及 77 种字牌 “东”,“南”,“西”,“北”,“白”,“发”,“中”。

这 3434 种牌各四张,共 136136 张。

如果你手牌中凑够了 1414 张牌,满足一定的牌型条件,就称作“和牌”。

这个牌型有很多种,但在本题中,只考虑最基本的一种,44 个面子 + 11 个雀头组成的牌型。

面子是刻子和顺子的统称,雀头是对子。

刻子指的是,三张一样的牌。

顺子指的是,三张连续的牌,注意,只有非字牌(也就是万,筒,条)才能连续,例如一二三万,四五六筒,并且不能循环连续,比如九一二条就不算顺子。

对子指的是,两张一样的牌。

现在,zcy 手中有 1313 张牌,并且再得到某一张牌,就可以和牌,而你的目标就是输出能使 zcy 和牌的牌。

注意一种特殊情况,如果你手牌中某张牌有四张,而再得到这张牌也能和牌,这张牌在本题中不需要输出,因为这张牌总共就只有四张,不可能拿到手了。

(如果你知道什么是杠,请假装不能杠,如果你不知道,那就不需要知道了。)

输入格式

1-919 万用对应数字 + 一个小写 mm 表示

1-919 条用对应数字 + 一个小写 ss 表示

1-919 筒用对应数字 + 一个小写 pp 表示

​东南西北白发中分别用 1-717 的数字 + 一个小写 zz 表示

​输入多组数据,每组共 1313 个数字 + 字母的组合,用空格隔开

​输入保证有解

输出格式

对于每组数据,输出若干行,每行一个听牌,按照万,条,筒,字的顺序输出听牌,同类型按照数从小到大输出

数据组数不超过 1010 组

样例输入

1s 2s 3s 4s 5s 6s 7s 8s 9s 1z 1z 3p 4p

样例输出

2p
5p
原文地址:https://www.cnblogs.com/lllxq/p/11070308.html