ZOJ 1088 System Overload (约瑟夫问题通用公式)
2010-07-28 15:06
423 查看
数学啊,数学。
具体过程在《具体数学》80页,是在3.4 floor/ceiling recurrence一节中讲的,具体的算法在81页表示了出来。网上又更简单的函数,但是基本思路有一些相像。
具体过程在《具体数学》80页,是在3.4 floor/ceiling recurrence一节中讲的,具体的算法在81页表示了出来。网上又更简单的函数,但是基本思路有一些相像。
#include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; int Josephus(int n,int q)//n是个数,q是每q个排除一个 { int D,m,t; t = (q-1)*n; for(D = 1;D <= t;) { m=q*D; D=m/(q-1); if(m%(q-1) == 0) continue; else D++; } return q*n+1-D; } /×int Josephus1(int n, int m)//这个是网上的代码,但是结果需要加一 { if (n==1) { return 0; } return (Josephus1(n-1,m)+m)%n; }×/ int main() { int i,n; while( cin >> n && n) { for(i = 2;;i++) if(Josephus(n-1,i) == 1) //这里用n-1的原因是第一个已经被去掉了。。。 { cout << i << endl; break; } } return 0; }
相关文章推荐
- ZOJ 1088 System Overload(约瑟夫问题通用公式)
- 剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题,ZOJ 1088:System Overload类似)题解
- TOJ 3053 OJ 2244 ZOJ 1088 System Overload / 约瑟夫
- ZOJ--1088:System Overload(约瑟夫环问题)
- zoj 1088 System Overload
- ZOJ 1088 System Overload
- zoj--1088--System Overload
- ZOJ 1088 System Overload
- ZOJ 1088 System Overload
- ZOJ Problem Set - 1088 System Overload
- ZOJ 1088 System Overload
- ZOJ 1088 约瑟夫问题
- 河内塔, 平面上的直线和约瑟夫问题的公式列表和出处
- zoj 1088题解--Josephus 问题,加速解决
- ZOJ 2072 Recursive Survival (约瑟夫问题)
- 约瑟夫环问题--ZOJ1088
- poj1021 约瑟夫问题 利用数学公式
- 1012 Joseph 约瑟夫问题 总结了一个公式 n人报m第t轮出列的人的编号(从0到n-1)
- zoj 1088 约瑟夫环问题(模拟)
- ZOJ 1088(可以模拟 快速解法约瑟夫环问题)