-
Notifications
You must be signed in to change notification settings - Fork 0
UVa 127
Alex Wind edited this page Sep 16, 2013
·
1 revision
from Volume 2. Data Structures :: Lists
模拟一个扑克牌游戏,规则是:
- 从左到右发牌,排成一行。
- 一共五十二张,所以一开始有五十二叠,然后根据规则进行合并。
- 只要一张牌与它左边第一张或者第三张牌匹配(点数或花色相同),就可以把牌移动到匹配牌上。
- 如果某一叠牌被移空,它右边的牌应该左移,补上它的空位。
- 应该移动到不能移动任何一张牌为止。
在某些情况下,应采取以下策略(最左边原则):
- 当同时有多张牌可以移动时,应该先移动最左边的牌。
- 当一张牌与左边的第一张和第三张牌都匹配,则应该移动到最左边的牌。 输入给出发牌的顺序,将这副牌按照规则进行游戏,输出最终结果。
题目数据量较小,可以模拟一张张牌移动,直到没有牌可以移动为止。要注意两个策略(最左边原则)。UVaOJ 的测试点比较严格,模拟要细心。相比之 POJ 的测试数据较水,很多错误代码都可以AC。如要要提交到 POJ ,要注意 POJ 的输出和 UVaOJ 不一样。很多代码TLE的原因其实是代码有错,而不是算法时间复杂度太高。