题目链接:poj 2886 Who Gets the Most Candies?
题目大意:N个人围成一圈玩约瑟夫环游戏,不同的是,步长不固定,由前一个出局的人决定,给定K表示起始的人。第i个淘汰的人将获得g(i)个糖果,问说谁获得的糖果最多。g(x)为x的因子个数。
解题思路:起始g(x)是成阶段的,所以打表处理处g(x)递增值,对于每个N,一开始找到小于等于N的最大x,那么第x个淘...
分类:
其他好文 时间:
2014-09-18 19:02:24
阅读次数:
250
描述了约瑟夫问题的两种解法。一种模拟过程,一种用数学方法推导。...
分类:
其他好文 时间:
2014-09-13 21:29:05
阅读次数:
112
写这篇文章是因为看到别人博客里用了很长一个篇幅(超过50行)去解决一个约瑟夫环问题,而且还是用以简洁著称的python,另外,如果你用X度搜索python 约瑟夫,看到得前几条都是错的,真是好悲剧。
总的来说,就是误人子弟。
虽然,用模拟去解决这个约瑟夫环问题效率是很低的,但是,这更容易理解。
先上代码。
def josephus(n,k):
link=range(1,n+1)
...
分类:
编程语言 时间:
2014-09-11 19:30:12
阅读次数:
258
约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到k的那个人被杀掉;他的下一个人又从1开始报数,数到k的那个人又被杀掉;依此规律重复下去,直到圆桌周围的人只剩最后一个。
思路是:当k是1的时候,存活的是最后一个人,当k>=2的时候,构造一个n个元素的循环链表,然后依次杀掉第k个人,留下的最后一个是可以存活的人。代码如下:...
分类:
编程语言 时间:
2014-09-10 17:52:11
阅读次数:
448
【问题】
? 问题描述:
输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。如果计数到达数列尾段,则返回数列首位置继续计数。请编程实现上述计数过程,同时输出数值出列的顺序
比如: 输入的随机数列为:3,1,2,...
分类:
其他好文 时间:
2014-09-04 19:12:20
阅读次数:
183
poj 1012 & hdu 1443 Joseph(约瑟夫环变形)...
分类:
其他好文 时间:
2014-09-02 10:30:34
阅读次数:
246
菜鸟系列之C/C++经典试题(五)
求圆圈中剩下的最后一个数字
约瑟夫环问题...
分类:
编程语言 时间:
2014-09-01 00:31:52
阅读次数:
228
约瑟夫环,已知n个人,(编号从1、2、3、4......n),围在一张圆桌上,从编号为startnum的人开始报数,报到outnum的人出列,接着从下一个人开始从1报数,数到outnum的人又出列;依次规律重复下去,知道所有人全部出列,请写出出列的依次序号数。 这是一个约瑟夫环问题,用单链表来...
分类:
其他好文 时间:
2014-08-23 21:37:11
阅读次数:
273