探索flutter框架开发的app在移动应用市场的潜力与挑战
1175
2022-08-26
hihocoder 1531 德国心脏病 (模拟)
描述
Jack在和朋友们玩德国心脏病。德国心脏病的游戏牌分为水果牌和动物牌。水果只有4种:香蕉、草莓、樱桃、柠檬,每张水果牌上会有种类不定、总数目1-5的水果;动物只有3种:猴子、大象、猪,每张动物牌上有且仅有一只动物。n名玩家绕圈就座,第一轮游戏从0号至n-1号轮流出牌。每个玩家面前最多只有一张牌,如果玩家出牌时,他的面前已经摆放了一张牌,他新出的牌将会严丝合缝地盖住旧牌。任何时候玩家可以选择按铃操作。如果按铃成功,玩家可以获得当前场上所有牌(包括被盖住的牌)并进入下一轮游戏,下一轮游戏由他先出牌,然后依序轮流出牌;否则,他需要支付给每位玩家一张手牌,然后他成为下一位出牌者,继续这一局游戏。按铃成功的条件:1、当前场上(被盖住的牌不算,以下同)某种水果的数量正好为5。2、当前场上出现猴子,至少有一个水果,且没有出现柠檬。3、当前场上出现大象,至少有一个水果,且没有出现草莓。4、当前场上出现猪,且至少有一个水果。Bob对这个游戏很感兴趣,他给了Jack一个操作序列,希望Jack输出最终每个人拥有的牌的数量。每名玩家初始拥有10,000,000张牌。操作分为两种:出牌或按铃。操作结束时游戏立即终止。1、出牌的格式是:Fruit+水果数s+水果种类s,0、1、2、3分别表示香蕉、草莓、樱桃、柠檬。如Fruit 4 0 2 2 2代表1个香蕉和3个樱桃的牌。或Animal+动物种类,0、1、2分别代表猴子、大象、猪。如Animal 0代表一张猴子牌。注意,选手需要自己计算出牌者是几号玩家。2、按铃的格式是:Ring+选手编号。如Ring 2。
输入
第一行两个正整数n(≤10), k(≤100,000)。接下来k行,每行对应一个操作。
输出
n行,每行一个整数,代表每个玩家游戏结束后拥有的牌的数目。
样例解释
3 13 # 井号后为样例输入说明:3名玩家,13次操作Fruit 5 0 0 0 0 0 # 0号玩家出牌:5个香蕉Ring 0 # 0号玩家按铃:按铃成功,获得场上的1张牌,开始下一轮游戏Ring 1 # 1号玩家按铃:按铃失败,给0, 2号玩家各一张牌Fruit 3 3 0 0 # 1号玩家出牌:1个柠檬+2个香蕉Animal 0 # 2号玩家出牌:猴子Fruit 4 2 2 2 2 # 0号玩家出牌:4个樱桃Ring 2 # 2号玩家按铃:按铃失败,给0, 1号玩家各一张牌Fruit 3 0 0 0 # 2号玩家出牌:3个香蕉,盖住上一张牌【猴子】Fruit 2 0 0 # 0号玩家出牌:2个香蕉,盖住上一张牌【4个樱桃】Ring 2 # 2号玩家按铃:按铃失败,给0, 1号玩家各一张牌Animal 2 # 2号玩家出牌:猪,盖住上一张牌【3个香蕉】Ring 0 # 0号玩家按铃:按铃成功,获得场上的6张牌,开始下一轮游戏Animal 2 # 0号玩家出牌:猪,游戏终止
样例输入
3 13Fruit 5 0 0 0 0 0Ring 0Ring 1Fruit 3 3 0 0Animal 0Fruit 4 2 2 2 2Ring 2Fruit 3 0 0 0Fruit 2 0 0Ring 2Animal 2Ring 0Animal 2
样例输出
1000000699999999999994
思路
算一道模拟题吧,照着题意实现每一个步骤便可以了。
AC 代码
#include
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~