约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人開始报数,数到m的那个人出列;他的下一个人又从1開始报数,数到m的那个人又出列;依此规律反复下去,直到圆桌周围的人所有出列。C代码例如以下(joseph.cpp):#include#incl...
分类:
其他好文 时间:
2015-01-19 12:10:16
阅读次数:
270
文章系参考转载,英文原文网址请参考:http://www.albahari.com/threading/转载:http://www.cnblogs.com/miniwiki/archive/2010/06/18/1760540.html#1.1作者 Joseph Albahari, 翻译 Swank...
分类:
编程语言 时间:
2015-01-13 12:09:44
阅读次数:
202
题意:给出n, k,求分析:假设,则k mod (i+1) = k - (i+1)*p = k - i*p - p = k mod i - p则对于某个区间,i∈[l, r],k/i的整数部分p相同,则其余数成等差数列,公差为-p然后我想到了做莫比乌斯反演时候有个分块加速,在区间[i, n / (n...
分类:
其他好文 时间:
2015-01-02 12:12:56
阅读次数:
176
由于项目计划书写作需要,重画了Qi Zhang, Mohamed Faten Zhani, Raouf Boutaba, Joseph L. Hellerstein,Dynamic Heterogeneity-Aware Resource Provisioning in the Cloud. IEE...
分类:
其他好文 时间:
2014-11-17 08:06:27
阅读次数:
477
题意:约瑟夫环的变形,要求寻找到一个杀人循环节m使后半节的坏人先被全部杀光。
直接链表模拟出结果,再打表就行;
代码:(注释的是打表码)
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
/*
int l[30],r[30];
int main()
{
...
分类:
其他好文 时间:
2014-11-10 13:53:16
阅读次数:
181
子问题与原问题........
题意:
有k个坏人k个好人坐成一圈,前k个为好人(编号1~k),后k个为坏人(编号k+1~2k)
现在有一个报数m,从编号为1的人开始报数,报到m的人就要自动死去。问当m为什么值时,可以使得在出现好人死亡之前,k个坏人先全部死掉?
PS:当前一轮第m个人死去后,下一轮的编号为1的人 为 前一轮编号为m+1的人。 前一轮恰好是最后一个人死掉,则下一轮循环回到开...
分类:
其他好文 时间:
2014-11-10 12:11:18
阅读次数:
179
UVA305 - Joseph(数论 + 打表)题目链接题目大意:约瑟夫环问题:n个人围成一圈,每次都淘汰第m个人,问最后一个幸存下来的人的编号。这题的意思有点不一样,它规定前面的k个人是好人,后面的k个人是坏人(2 ? k形成环)。问最小的m是多少,可以先把后面的k个坏人淘汰再淘汰好人。解题思路:...
分类:
其他好文 时间:
2014-11-08 22:08:46
阅读次数:
210
文章系参考转载,英文原文网址请参考:http://www.albahari.com/threading/ 作者Joseph Albahari, 翻译Swanky Wu 最终解释权归作者本人所有,只是为了学习方便,方才转载! 中文翻译作者把原文放在了"google 协作"上面,GFW屏蔽,不能访问和查...
分类:
编程语言 时间:
2014-10-21 19:27:37
阅读次数:
380
一:首先科普一下约瑟夫问题的数学方法
(1) 无论是用list实现还是用vector实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办法在短时间内出结果的。我们注意到原问题仅仅是要求出最后的胜利者的序号,而不是要读者模拟整个过程。因此如果要追求效率,就要打破常规,实施一点数学策略。 ...
分类:
其他好文 时间:
2014-10-15 12:44:40
阅读次数:
251
UVA305 - Joseph(数论 + 打表)
题目链接
题目大意:约瑟夫环问题:n个人围成一圈,每次都淘汰第m个人,问最后一个幸存下来的人的编号。
这题的意思有点不一样,它规定前面的k个人是好人,后面的k个人是坏人(2
?
k形成环)。问最小的m是多少,能够先把后面的k个坏人淘汰再淘汰好人。
解题思路:这题有个递推式:ai = (ai - 1 + m - 1) % ...
分类:
其他好文 时间:
2014-09-19 12:04:05
阅读次数:
220