有N个人围一圈依次报数,数到3的倍数的人出列,问当只剩一个人时他原来的位子在哪里?
/*约瑟夫环问题---单向循环链表实现*/
/**********************************/
/**********Date:2015.3.11*********/
/*********author:xiaozhi xiong***/
/**************************...
分类:
其他好文 时间:
2015-03-11 19:43:55
阅读次数:
128
1 #include 2 #include 3 #include 4 #include 5 #define sc(x) scanf("%d",&x) 6 #define pf(x) printf("%d\n",x) 7 #define CL(x,y) memset(x,y,sizeof(x...
分类:
编程语言 时间:
2015-03-11 14:18:50
阅读次数:
132
首先看到这题脑子里立刻跳出链表。。后来继续看如家的分析说,链表法时间复杂度为O(n*k),肯定会TLE,自己才意识到果然自个儿又头脑简单了 T^T.看如家的分析没怎么看懂,后来发现这篇自己理解起来更容易(...)共享一下~http://blog.csdn.net/chenguolinblog/art...
分类:
其他好文 时间:
2015-03-03 22:00:56
阅读次数:
167
#region 约瑟夫环 static void SuesfuRing() { Console.WriteLine("请输入几个人"); int n = Convert.ToInt32(Console.ReadLine());...
分类:
其他好文 时间:
2015-03-02 06:07:53
阅读次数:
202
链接:click here~~
题意:假设有2k个人围着一个圆桌坐着,前k个是好人,后k个是坏人 。现在开始,每m个人踢掉一个,比如有6个人,m=5,那么,被踢掉的人依次是5,4,6,2,3,1。现在要求,在踢掉第一个好人前,必需把所有的坏人踢掉,问,给定一个k,求满足这个要求的最小的m,现在希望你写一个程序,快速的帮助小珂,计算出来这个m。
思路:我们来回想一下最基本的约瑟夫环问题, n个人...
分类:
其他好文 时间:
2015-02-22 19:35:24
阅读次数:
199
#includeusing namespace std;int main(){ int a=17,b=3,winner=0;//总人数a,数到b的倍数离开,最后的人winner for(int i=2;i<=a;i++) winner=(winner+b)%i; co...
分类:
编程语言 时间:
2015-02-13 23:32:35
阅读次数:
222
题意:约瑟夫环问题。 输入n是总人数,数到k的人离队。 输出离队顺序。
做法:因为要输出在原串中的位置,所以用了树状数组加二分来找。树状数组开始每个点都初始化为1,然后离队的改为减一。对于sum(x),x是原来环的 标号,sum(x) 就表示 当前 减少了人数的环中 对应的 是第几个。...
分类:
编程语言 时间:
2015-02-12 10:44:55
阅读次数:
166
题目: JosephTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2078 Accepted Submission(s): 1204 Problem DescriptionThe Joseph\\\\\\\'s problem i...
分类:
其他好文 时间:
2015-02-02 14:16:02
阅读次数:
114
最简单的约瑟夫环,虽然感觉永远不会考约瑟夫环,但数学正好刷到这部分,跳过去的话很难过直接粘别人分析了约瑟夫问题:用数学方法解的时候需要注意应当从0开始编号,因为取余会等到0解。实质是一个递推,n个人中最终存活下来的序号与n-1个人中存活的人的序号有一个递推关系式。分析:假设除去第k个人。0, 1, ...
分类:
其他好文 时间:
2015-02-01 23:02:13
阅读次数:
217
题目链接:http://poj.org/problem?id=1781
约瑟夫环...
分类:
其他好文 时间:
2015-01-24 06:48:03
阅读次数:
180