Who Gets the Most Candies?
Time Limit: 5000MS
Memory Limit: 131072K
Total Submissions: 9934
Accepted: 3050
Case Time Limit: 2000MS
Description
N children are s...
分类:
其他好文 时间:
2014-08-13 22:33:17
阅读次数:
281
问题描述:n个数字(下标为0, 1, …, n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(当前数字从1开始计数)。当一个数字被删除后,从被删除数字的下一个数字开始计数,继续删除第m个数字。求这个圆圈中剩下的最后一个数字。分析:这是有名的约瑟夫环问题。最直接的方法:使用链表来模拟...
分类:
其他好文 时间:
2014-08-11 17:22:12
阅读次数:
192
[code=C++]
/*
author:jiangxin
Blog:http://blog.csdn.net/jiangxinnju
Function:method of Josephus question
*/
#include
using namespace std;
struct node
{
int seq;
node *...
分类:
编程语言 时间:
2014-08-10 12:59:40
阅读次数:
270
http://poj.org/problem?id=3517
讲解
n个人,编号为1~n,每次数到m的人出圈,最后一个出圈的人的编号。
f[1] = 0;
for(int i = 2; i <= n; i++)
{
f[i] = ( f[i-1] + m)%i;
}
printf("%d\n",f[n]+1);
这里第一次出圈的人的编号是m,然后...
分类:
其他好文 时间:
2014-08-08 21:31:06
阅读次数:
281
http://poj.org/problem?id=1781
约瑟夫环的模板,每次数到2的人出圈。
但直接求会TLE,n太大。
打表发现答案和n有关系。当n是2的幂的时候,答案都是1,不是2的幂的时候都与小于2的幂那个数相差差值的2的倍数。
#include
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2014-08-08 21:26:06
阅读次数:
297
Throwing cards away I
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu
Submit
Status
Description
Given is an ordered deck of n cards numbered 1 to n with card 1 at the t...
分类:
其他好文 时间:
2014-08-04 17:38:47
阅读次数:
272
题目链接:
啊哈哈,选我选我
思路是:
相当于模拟约瑟夫环,只不过是从顺逆时针同时进行的,然后就是顺逆时针走可以编写一个函数,只不过是走的方向的标志变量相反。。还有就是为了(pos+flag+n-1)%n+1的妙用。。。
题目:
The Dole Queue
In a serious attempt to downsize (reduce...
分类:
其他好文 时间:
2014-08-04 11:09:37
阅读次数:
206
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
方法1:使用stl::list模拟环形链表,参考剑指offer
代码:
#include
#include
using namespace std;
i...
分类:
其他好文 时间:
2014-08-03 20:40:55
阅读次数:
218
这就是一个约瑟夫问题,前面我写过这样约瑟夫的程序,在这里我只简单的提提。
如何用一维数组来完成一个绕成圆圈的问题呢,首先就是要定义的空间比较大的一维数组,数到第S个就出列的话,那么在数到之前的那些孩子,
要按顺序再挨个排到最后一个孩子后面,比如一共n个孩子,编号是1到n,放在数组p[ ]里,假如没数到第4个就出列,那么整个过程就是:
把p[1]放到p[n+1]中,p[2]放到p[n+2]中,p[3]放到p[n+3]中,让后p[4] 出列,接着p[5]放到p[n+4]上, p[6]放到p[n+5]上,,,以此...
分类:
其他好文 时间:
2014-08-03 18:13:25
阅读次数:
185
Time Limit: 1000MS Memory limit: 65536K
题目描述
n个人想玩残酷的死亡游戏,游戏规则如下:
n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。
请输出最后一个人的编号。
输入
输入n和m值。
输出
输出胜利者的编号。
示例输入
5 3
示例...
分类:
其他好文 时间:
2014-07-31 20:49:57
阅读次数:
197