塔子哥组织宿舍的同学们玩消消乐小游戏, 游戏可由N人参与, 总共有M张卡片平均分成N份, 保证M能被N整除。
塔子哥组织了一场消消乐小游戏,共有 ( N ) 名玩家参与,手中各有 ( M/N ) 张卡片,游戏由塔子哥开始,玩家依次出牌,若出牌与桌面上的牌相同,则可以将相同牌及其夹在其中的牌拿走并放回手牌中。游戏持续进行,直到倒数第二位玩家出完手牌,最终输出获胜者的轮数、编号以及最后手中的牌顺序。
题解:模拟
使用双端队列+哈希表来模拟整个游戏的过程 玩家手里面的牌可以使用双端队列来模拟,出牌操作就是弹出队头元素,用哈希表记录当前桌面上的牌,如果哈希表检测到玩家打出的牌桌面上存在,则需要把桌面的部分牌回收到当前玩家手中,并更新哈希表中的元素。
某一个玩家被淘汰就说明队列为空,游戏结束说明在场的玩家数量cnt=1