问题:有2k个人,前k个是好人,后k个是坏人,要求最小的m,使得k个坏人在好人之前。
思路:
约瑟夫环递归式为F(n,k)=(F(n-1,k) + k) mod n。其中F(n,k)表示n个人,每一次从当前数k个,让这个人出局后最后出局的人的标号。
首先确定在k+1个人时,即前k个是好人,1个坏人时,出局的人标号为k。然后根据递归式得到2k个人时,经过k轮后,每轮出局的人都是坏人。
具体代码如下:
https://github.com/wuli2496/OJ/tree/master/hduoj/1443%20Joseph
1748

被折叠的 条评论
为什么被折叠?



