package 约瑟夫环;import java.util.ArrayList;import java.util.List;public class 约瑟夫环 { public static void main(String[] args) { List list = n...
分类:
其他好文 时间:
2015-09-24 22:30:44
阅读次数:
115
解题思路:约瑟夫环。具体见代码: 1 #include 2 using namespace std; 3 int n, k, m, vis[24]; //24,向科比致敬,像科比一样努力的活着。 4 5 int go(int p, int d, int t) 6 { 7 while(t...
分类:
其他好文 时间:
2015-09-24 16:27:36
阅读次数:
128
题目来源:《剑指offer》面试题45 题目:0,1,。。。,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 解法一:经典解法,用环形链表模拟圆圈。这种方法每删除一个数字需要m步运算,总共有n个数字,因此总的时间复杂度是O(mn)...
分类:
编程语言 时间:
2015-09-19 16:46:31
阅读次数:
156
约瑟夫环问题的原来描述为,设有编号为1,2,……,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,直到所有人全部出圈为止。当任意给定n和m后,设计算法求n个人出..
分类:
其他好文 时间:
2015-09-08 07:19:36
阅读次数:
172
voidJosephCycle(PLinkList*ppList,intk){ Node*begin=*ppList; if(*ppList==NULL) { return; } while(1) { Node*del; intx=k; //只有一个节点的退出 if(begin->next==begin) { break; } while(--x) { begin=begin->next; } printf("%d,",begin->data..
分类:
其他好文 时间:
2015-08-26 00:04:44
阅读次数:
126
唉,说点废话,昨天偶尔看到一年前自己用C解约瑟夫环问题的循环链表,唏嘘不已,想想自己一年前嵌入式的梦呢,这两天发生了许多,而有些人不在了就真的不在了,心情不好,不多说了,直接上代码,只是些链表的基本操作,花些功夫看就好了。 首先,建立一个Node类,里面内构一个Node对象和数据(用来区分);...
分类:
编程语言 时间:
2015-08-09 20:26:50
阅读次数:
185
题目传送门 1 /* 2 数学:约瑟夫环问题的变形,首先定义f[i]表示剩下i个人时,最后一个选出的人,有个公式:f[i] = (f[i-1] + m) % i 3 f[1] = 0(编号从0开始),那么类似最后一个数的求法,先找到剩2个人和剩3个人时,最后的编号,然后跟着最...
分类:
其他好文 时间:
2015-08-08 16:19:41
阅读次数:
112
约瑟夫环 问题描述:约瑟夫问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报...
分类:
其他好文 时间:
2015-08-07 23:36:58
阅读次数:
110
约瑟夫环问题// 约瑟夫环.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include
#include
#include
/*常量定义*/
#define OK 0 //成功执行
#define Err_Memory -1 //内存分配错误...
分类:
其他好文 时间:
2015-08-06 18:32:19
阅读次数:
116
题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。
分析:本题就是有名的约瑟夫环问题。既然题目有一个数字圆圈,很自然的想法是我们用一个数据结构来模拟这个圆圈。在常用的数据结构中,我们很容易想到用环形列...
分类:
其他好文 时间:
2015-08-05 22:22:13
阅读次数:
367