蓝桥杯1879: 蓝桥杯2017年第八届真题-拉马车题解

上官魅 算法基础篇 42 0
题库丰富多样,涵盖各个领域,全网最全C++题库,让您在练习中不断成长!
小的时候,你玩过纸牌游戏吗?有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友,其中的X表示“10”,我们忽略了纸牌的花色,从A方开始,A、B双方轮流出牌,当某一方出掉手里最后一张牌,但无法从桌面上赢取牌时,游戏立即结束,本题的任务就是已知双方初始牌序,计算游戏结束时,赢的一方手里的牌序,当游戏无法结束时,输出-1。

小的时候,你玩过纸牌游戏吗? 有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。 其规则简述如下: 假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下: A方:[K, 8, X, K, A, 2, A, 9, 5, A] B方:[2, 7, K, 5, J, 5, Q, 6, K, 4] 其中的X表示“10”,我们忽略了纸牌的花色。 从A方开始,A、B双方轮流出牌。 当轮到某一方出牌时,他从自己的纸牌队列的头部拿走一张,放到桌上,并且压在最上面一张纸牌上(如果有的话)。 此例中,游戏过程: A出K,B出2,A出8,B出7,A出X,此时桌上的序列为: K,2,8,7,X 当轮到B出牌时,他的牌K与桌上的纸牌序列中的K相同,则把包括K在内的以及两个K之间的纸牌都赢回来,放入自己牌的队尾。注意:为了操作方便,放入牌的顺序是与桌上的顺序相反的。 此时,A、B双方的手里牌为: A方:[K, A, 2, A, 9, 5, A] B方:[5, J, 5, Q, 6, K, 4, K, X, 7, 8, 2, K] 赢牌的一方继续出牌。也就是B接着出5,A出K,B出J,A出A,B出5,又赢牌了。 5,K,J,A,5 此时双方手里牌: A方:[2, A, 9, 5, A] B方:[Q, 6, K, 4, K, X, 7, 8, 2, K, 5, A, J, K, 5] 注意:更多的时候赢牌的一方并不能把桌上的牌都赢走,而是拿走相同牌点及其中间的部分。但无论如何,都是赢牌的一方继续出牌,有的时候刚一出牌又赢了,也是允许的。 当某一方出掉手里最后一张牌,但无法从桌面上赢取牌时,游戏立即结束。 对于本例的初始手牌情况下,最后A会输掉,而B最后的手里牌为: 9K2A62KAX58K57KJ5 本题的任务就是已知双方初始牌序,计算游戏结束时,赢的一方手里的牌序。当游戏无法结束时,输出-1。

蓝桥杯1879: 蓝桥杯2017年第八届真题-拉马车题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)
不断挑战自我,才能突破极限!全网最全C++题库,让您在编程道路上越走越远。

标签: 蓝桥杯1879: 蓝桥杯2017年第八届真题-拉马车题解