#include<iostream.h> #include<stdio.h> #include<stdlib.h> typedef struct node { int data1; int data2; node *next; }list; list *creat(int n)//建立单循环链表 { ...
分类:
其他好文 时间:
2018-02-12 11:18:38
阅读次数:
180
今日题目: 今天的题目比较有意思,可以学到很多知识,包括第1题中的数据结构——双向队列,第3题约瑟夫环问题等。 1.滑动窗口的最大值 代码如下: 2. 扑克牌中的顺子 代码如下: 3.圆圈中最后剩下的数字 代码如下: 4. 求1+2+3+...+n 代码如下: 5. 不用加减乘除做加法 代码如下: ...
分类:
编程语言 时间:
2018-02-07 21:28:37
阅读次数:
268
基本问题描述:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。那么我这里主要研究的是最后一个出列的人的序号要怎么确定。 第一种:模拟 同方法名所 ...
分类:
其他好文 时间:
2018-01-30 00:17:26
阅读次数:
179
约瑟夫环是一个很有意思的算法。大意就是:罗马人占领了乔塔帕特,41个人藏在一个山洞中躲过了这场浩劫。这41个人中,包括历史学家约瑟夫(Josephus)和他的一个朋友。剩余的31个人为了表示不想罗马人屈服,决定集体自杀。大家决定了一个自杀方案,所有这41个人围成一个圈,由第1个人开始顺时针报数,每报数为3的人立刻就自杀,然后再由下一个人重新开始报数,仍然是每报数为3的人就立刻自杀,直到所有人都自杀
分类:
编程语言 时间:
2018-01-27 19:10:25
阅读次数:
145
基础算法之一——模拟法“约瑟夫环问题” 题目描述 有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外。剩下的猴子再接着从1开始报数,就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王。编程输入n和m,输出最后猴王的编号。 输入数据 每行是用空格 ...
分类:
编程语言 时间:
2018-01-27 18:59:40
阅读次数:
147
问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。 一般我们采用一个循环队列来模拟约瑟夫环的求解过程,但是如果n比较大的时候,采用模拟的方式求解,需要大量的时间来模拟退出的过程,而且由于需要占用大量的内存空间来模拟队列中的n个人,并 ...
分类:
其他好文 时间:
2017-12-31 21:11:33
阅读次数:
173
King's Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 832 Accepted Submission(s): 460 Probl ...
分类:
其他好文 时间:
2017-12-16 22:10:18
阅读次数:
275
N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。 例如:N = 3,K = 2。2号先出列,然后是1号,最后剩下的是3号。 Input 2个数N和K,表示N个人,数到K出列。(2 <= N, K <= 10^6) Outpu ...
分类:
其他好文 时间:
2017-12-07 00:14:00
阅读次数:
168
P1145 约瑟夫 P1145 约瑟夫 P1145 约瑟夫 题目描述 n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。现在有一圈人,k个好人站在一起,k个坏人站在一起。从第一个好人开始数数。你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人 ...
分类:
其他好文 时间:
2017-11-26 17:44:26
阅读次数:
124