故事:约瑟夫问题(Josephus Problem)据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第...
分类:
编程语言 时间:
2014-08-23 15:07:50
阅读次数:
210
约瑟夫环用线段数搞,一脸搞不出来的样子。反素数,太神了,先打表,然后就可以 O(1)找到因子数最多的。ps:哎。这题也是看着题解撸的。#include #include #include #include #include #include #include #include #include #i...
分类:
其他好文 时间:
2014-08-22 00:06:25
阅读次数:
231
POJ 3517
题目: n k m
数字1到n成环,先叉数字m,往下数k个,直到最后只有一个数字,输出它。
链表模拟:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXN ...
分类:
其他好文 时间:
2014-08-20 10:29:36
阅读次数:
212
经典的约瑟夫环问题嘛。有点小小的变形而已。给你N个人围成一个环(编号1~N),从第M个人开始,每隔K个人报一次数,报数的人离开该环。
求最后剩下的人的编号。
约瑟夫问题的数学递推解法:
(1)第一个被删除的数为 (m - 1) % n。
(2)假设第二轮的开始数字为k,那么这n - 1个数构成的约瑟夫环为k, k + 1, k + 2, k +3, .....,...
分类:
其他好文 时间:
2014-08-20 00:05:35
阅读次数:
258
这个问题看了看,没看懂,搁置。
约瑟夫环问题(Josephus)
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus)
解法一(My Solution):
思想:建立一个有N个元素的循环链表,然后从链表头开始遍历并记数,如果计数i==m(i初始为1)踢出元素,继续循环,当当前元素与下一元素相同时退出循环。
代...
分类:
其他好文 时间:
2014-08-19 14:33:14
阅读次数:
199
POJ 2886 Who Gets the Most Candies?(线段树模拟约瑟夫环,高合成数)
ACM
题目地址:POJ 2886 Who Gets the Most Candies?
题意:
N 个小孩围成一圈,他们被顺时针编号为 1 到 N。每个小孩手中有一个卡片,上面有一个非 0 的数字,游戏从第 K 个小孩开始,他告诉其他小孩他卡片上的数字并离开这个圈,他卡片...
分类:
其他好文 时间:
2014-08-15 10:45:28
阅读次数:
213
#include using namespace std;struct Node{ Node *next; int data;};void createCircle(Node* &L,int n,int k){ int i = 0; Node*p = L; p ...
分类:
其他好文 时间:
2014-08-14 01:03:47
阅读次数:
216
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
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