HBC20135[JLOI2013]卡牌游戏题解

北笙凉宸 算法基础篇 60 0
想要检验自己的编程水平?来试试全网最全C++题库,让您在挑战中不断进步。
N个人坐成一圈玩游戏,一开始我们把所有玩家按顺时针从1到N编号, 首先第一回合是玩家1作为庄家,每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字为X,则庄家首先把卡片上的数字向所有玩家展示,然后按顺时针从庄家位置数第X个人将被处决即退出游戏,然后卡片将会被放回卡牌堆里并重新洗牌,被处决的人按顺时针的下一个人将会作为下一轮的庄家,那么经过N-1轮后最后只会剩下

N个人坐成一圈玩游戏。一开始我们把所有玩家按顺时针从1到N编号。 首先第一回合是玩家1作为庄家。每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字为X,则庄家首先把卡片上的数字向所有玩家展示,然后按顺时针从庄家位置数第X个人将被处决即退出游戏。然后卡片将会被放回卡牌堆里并重新洗牌。被处决的人按顺时针的下一个人将会作为下一轮的庄家。那么经过N-1轮后最后只会剩下一个人,即为本次游戏的胜者。 现在你预先知道了总共有M张卡片,也知道每张卡片上的数字。现在你需要确定每个玩家胜出的概率。  这里有一个简单的例子: 例如一共有4个玩家,有四张卡片分别写着3,4,5,6.  第一回合,庄家是玩家1,假设他选择了一张写着数字5的卡片。那么按顺时针数1,2,3,4,1,最后玩家1被踢出游戏。 第二回合,庄家就是玩家1的下一个人,即玩家2.假设玩家2这次选择了一张数字6,那么2,3,4,2,3,4,玩家4被踢出游戏。 第三回合,玩家2再一次成为庄家。如果这一次玩家2再次选了6,则玩家3被踢出游戏,最后的胜者就是玩家2.  

HBC20135[JLOI2013]卡牌游戏题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)
成为编程大师,不再是梦想!全网最全C++题库,助您开启编程新篇章。

标签: HBC20135[JLOI2013]卡牌游戏题解