1012

来源:互联网 发布:联通软件研究院待遇 编辑:程序博客网 时间:2024/05/19 20:40

算法来自:http://blog.csdn.net/ericxieforever/archive/2008/04/27/2335646.aspx

 

分析:题目数据量太小,直接模拟Joseph暴力打表也能过。这里介绍一下递推法测试。
先引入Joseph递推公式,设有n个人(0,...,n-1),数m,则第i轮出局的人为f(i)=(f(i-1)+m-1)%(n-i+1),f(0)=0;依次我们可以来做测试,只要前k轮中只要有一次f(i)<k则此m不符合题意。接下来我们考察一下只剩下k+1个人时候情况,那么依题意则这一轮出局的人要么在上一轮出局人的左边,要么就在右边,设上一轮出局的人为x,则必有m%(k+1)==0或1(还不明白就看下面两个序列表示的k+2人的情况(G表示好人,共有k个,B表示坏人,X表示上一轮出局的人)GG....GGBX,GG...GGXB)。所以测试数为t(k+1)或t(k+1)+1,t>=1。

 

 

 

 

 

 

原创粉丝点击