#include
#include
#include
using namespace std;
const int MAXN = 1 << 17;
struct SegTree {
int n, m;
int a[MAXN + MAXN];
static int L(int i) { return i << 1;...
分类:
编程语言 时间:
2015-07-20 10:54:42
阅读次数:
189
约瑟夫环问题一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,输出最后那个大王的编号。链表解法function king($n,$m){
$monky = range(1,$n);
$i = 0;...
分类:
Web程序 时间:
2015-07-17 12:05:39
阅读次数:
215
题目链接:点击进入
题目意思大概和约瑟夫环问题差不多,唯一的不同点在于起点改成了m;刚开始的时候我想直接链表模拟算了,但是后面一看,数据太大,就改用公式做了。约瑟夫环的公式是:f(n)=(f(n-1)+k)%n
,对于这个题起点为m,所以答案就会变成ans=(f(n)+m-k+1)%n;
ans有可能小于0,此时我们要给他加上一个n,ans+=n。代码如下:#include...
分类:
其他好文 时间:
2015-07-16 11:49:51
阅读次数:
201
86/88汇编是windows系统的语言基础之一,本文就是在32位window操作系统下通过dos系统运行86/88汇编代码。我在上大学是为了计算机三级pc上机试题的运行发愁,我终于从微机原理上机实践课的一个例子中提取出运行86/88汇编代码的代码片段,并通过简单修改把三级pc上机试题的尾部全部转变成可以运行的代码。操作过程如下,希望给各位学弟学妹们有所帮助,顺利考过三级pc上机,增强大家的动手能力...
分类:
其他好文 时间:
2015-07-15 19:24:36
阅读次数:
220
题意:有1到n顺时针坐在圆桌上,编号从1到n,从1开始顺时针报数,每k个出去一个人,输出倒数第三个出去、倒数第二个出去、倒数第一个出去的人的编号。
题解:n的范围是500000,肯定不能用链表来解,这就用到了约瑟夫问题的递推式:f[i] = (f[i - 1] + k) % i,初始f[1] = 0表示还剩1个人的时候最后出去的人编号一定是0(这里默认编号从0开始),那么根据递推式可以得到f[n]...
分类:
其他好文 时间:
2015-07-15 17:03:33
阅读次数:
148
题目大意:给出n,k和m,表示有n个人围成一个圈,从第m个人开始(m也要去掉),每次走k步删除掉,问最后剩下人的序号。解题思路: 数学递推
分析:
1 题目是一道变形的约瑟夫环变形问题
2 网上看到一篇很好的数学递推法
问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。编号0-(n-1)是有意义的,因为要模n,所以用0-(...
分类:
其他好文 时间:
2015-07-14 18:06:29
阅读次数:
98
之前用的是循环链表,java刚学,不知道怎么用链表,用个小算法吧
代码:
import java.util.Scanner;
/**
*
*/
/**
* @author john
* @约瑟夫循环/MonkeyKing
*/
public class MonkeyKing {
/**
* @param args
*/
public static ...
分类:
编程语言 时间:
2015-07-14 13:47:27
阅读次数:
241
题意 n个人顺时针围成一圈玩约瑟夫游戏 每个人手上有一个数val[i] 开始第k个人出队 若val[k] 0 时向左数val[k]个 第m出队的人可以得到m的约数个数个糖果 问得到最多糖果的人是谁
约瑟夫环问题 n比较大 直接模拟会超时 通过线段树可以让每次出队在O(logN)时间内完成 类似上一道插队的题 线段树维护对应区间还有多少个人没出队 那么当我们知道出队的人...
分类:
其他好文 时间:
2015-07-13 22:34:13
阅读次数:
237
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。求剩下最后的一个人的编号。
#include "stdafx.h"
#include
#include
using namespace std;
temp...
分类:
其他好文 时间:
2015-07-13 16:23:27
阅读次数:
114
今天讲的一道习题是很经典的约瑟夫环问题,其实lz对于链表的某些操作还不是太懂,所以在程序中有些地方还不太看得懂,这里借鉴的网上的做法,还请大牛能够解答我的疑惑,谢谢!标题:约瑟夫环说明:约瑟夫环是这么一个问题:已知n个人(编号1,2,。。。n)围坐在圆桌周围。从编号为k的人开始报数,数到m的人出列,...
分类:
编程语言 时间:
2015-07-13 11:51:13
阅读次数:
212