OI养老专题01:约瑟夫问题

  有M个人,其编号分别为1-M。这M个人按顺序排成一个圈。现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然后又从下一个人开始又从1开始依次报数,数到N的人又出列...如此循环,直到最后一个人出列为止。

  输入只有一行,包括2个整数M(8 <= M <= 15 ),N( 5 <= N <= 32767 )。之间用一个空格分开。

  输出M行,每行一个整数,表示每次出列的人的编号。



  好养老的一道经典题啊......为什么不回忆一下刚学OI时的愚钝,暴力模拟一下呢?反正刚学OI时也是这么做的......

  一开始想用指针,但是发现敲不来(菜);然后改用邻接表,发现也敲不来......反正这么菜,干脆打vis数组好了,遇到vis[i]=1就跳过:

for(int i=1,cnt=1,res=m;res>=1;i=i%n+1) if(!vis[i]){
    if(!cnt) printf("%d\n",i),vis[i]=true,res--;
    cnt=(cnt+1)%n;
}

  是不是很养老~反正这个数据范围的题是水得过去的。

原文地址:https://www.cnblogs.com/akura/p/10758080.html

时间: 2024-10-27 06:38:13

OI养老专题01:约瑟夫问题的相关文章

OI养老专题02:约瑟夫问题求幸存者

如题.人数为n(1<=n<=30000),共k(1<=k<=30000)组数据,所报的数m恒为2. 如果你还不知道什么是约瑟夫问题...——https://www.cnblogs.com/akura/p/10758080.html 如果直接暴力枚举,那么时间复杂度就为O(NM)=O(N),所有数据一共O(KNM)=O(KN).遇上这道题就爆掉了. 那么怎么解决这种大数据的题呢?我们先手玩一把n个人的约瑟夫问题.由于每次对于n取模后的值在[0,n-1]之间,所以我们干脆让所有人的编号

动态规划专题 01背包问题详解【转】

对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你产生错误理解的地方,让你难得读懂的地方,请跟贴指出,谢谢! 初识动态规划 经典的01背包问题是这样的: 有一个包和n个物品,包的容量为m,每个物品都有各自的体积和价值,问当从这n个物品中选择多个物品放

ACM:数论专题(3)——约瑟夫问题

(p.s: 以前做约瑟夫问题都是用链表模拟,今天发现了一个效率更高的方法,受教了...) 题目描述: 小Hi和小Ho的班级正在进行班长的选举,他们决定通过一种特殊的方式来选择班长. 首先N个候选人围成一个圈,依次编号为0..N-1.然后随机抽选一个数K,并0号候选人开始按从1到K的顺序依次报数,N-1号候选人报数之后,又再次从0开始.当有人报到K时,这个人被淘汰,从圈里出去.下一个人从1开始重新报数. 也就是说每报K个数字,都会淘汰一人.这样经过N-1轮报数之后,圈内就只剩下1个人了,这个人就作

专题:01分数规划

poj2976 普通的01分数规划 大意:给定A数组B数组,从中选择N-K个使得R最大,输出Round(100*R); #include <iostream> #include <algorithm> #include <cmath> #include <cstdio> using namespace std; const int N = 1009; const double Eps = 1e-7; int n, k; double a[N], b[N];

动态规划专题 01背包问题详解 HDU 2546 饭卡

我以此题为例,详细分析01背包问题,希望该题能够为初学者对01背包问题的理解有所帮助,有什么问题可以向我提供,一同进步^_^ 饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14246    Accepted Submission(s): 4952 Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即

打破传统天价SAP培训,开创SAP师徒之路,经验丰富的老顾问带徒弟

SAP领航社区,开设了一个导师性质的师徒圈子,类似大学导师带研究生,导师给学生安排课题.分配任务.分享资料,让学生自学提高.我们的教学方法是以自学为主,辅导为辅助,在实践中积累经验掌握原理.主要方向ABAP.FICO.SD.MM.PP.HR.CS.CRM.Webdynpro.BO.BW 等等,经验丰富的老顾问带新徒弟,既可以教徒弟技术,又可以给徒弟推荐项目机会 (特殊说明:非线下或者网络授课,通过分享资料,让学生自学,不懂问导师,引导之路) 教学方法: SAP领航推出的导师性质的培训(经验老道的

巢哑偕倥乇椭煞谙暗逞帕俸

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求

pl/sql学习1——标量变量psahnh6S

为类型.不能用于表列的数据类型.范围为的子类型.自然数.为的子类型.具有约束为单精度浮点数.为变量赋值时.后面要加为双精度浮点数.为变量赋值时.后面要加.为数字总位数.为小数位数是的子类型.最大精度位是的子类型.最大精度位单精度浮点型是的子类型.最大精度位双精度浮点型定义精度为位的实数..定义为位的整数.变长字符串.最长测试变量数据!.定长字符串.最长测试变长二进制字符串物理存储的为类型...固定长度.个字节使用定义数据类型那个最小值:最大值:最小值:最大值:最小值:最大值:最小值:最大值:最小

我喜欢减肥我们来减肥吧

http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313278016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313282016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313289016/2015.01.28.html http://www.ebay.com/cln/usli