题意:n个孩子坐在N把椅子上,围绕着一个圆圈。椅子的编号从1到N。你选择一个正数D.节目开始进行,从第一张椅子开始,开始计算孩子们的人数。当数到D时,那个孩子离开游戏,移走他/她的椅子。节目再次开始计数,从圈中的下一位主席开始。剩下的最后一个孩子是赢家。

方法一:暴力法-超时
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
struct node{node *next;int x;node(int x):x(x),next(NULL){}
};
int n,k;
node *first=NULL;
int main(){while(scanf("%d %d",&n,&k)!=EOF){if(n==0&&k==0)break;node *last=new node(1);first=last;for(int i=2;i<=n;i++){last->next=new node(i);last=last->next;}last->next=first;for(int i=1;i<=n;i++){for(int j=1;j<k;j++){last=first;first=first->next;}if(i==n){cout<<n<<" "<<k<<" "<<first->x<<endl;}last->next=first->next;first=first->next;}}return 0;
}
优化方法-Accept
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,k;
int main(){while(scanf("%d %d",&n,&k)!=EOF){if(n==0&&k==0)break;int ans=0;for(int i=1;i<=n;i++){ans=(ans+k)%i;//递推式}cout<<n<<" "<<k<<" "<<ans+1<<endl;}return 0;
}

HDU2925(约瑟夫环问题)相关推荐

  1. python中约瑟夫环程序_Python实现约瑟夫环问题的方法

    本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...

  2. 约瑟夫环问题的两种解法(详解)

    约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...

  3. python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...

    问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...

  4. 一文读懂约瑟夫环算法

    2020-05-25 20:13:40 作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的 ...

  5. 面试题小记:1、统计字符串出现的次数,2、约瑟夫环问题

    今天面到了一个比较有意思的笔试题,先记录一下: 1.字符串类似'aaabbccddd',写个方法得出'3a2b2c3d',即统计字符串出现的个数 $arr = str_split('aaabbccdd ...

  6. java实现简单的约瑟夫环问题(二)

    Josephus(约瑟夫)问题的数学方法 前面的内容都是直接来来自于百度百科,后面才是我对这段话的理解 无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间 ...

  7. 约瑟夫环双向链表c语言实,双向链表与约瑟夫环代码

    双向链表 //注意:该文件操作的链表为带头结点双向链表,头结点数据为-1 #include #include #include #define OK 1 #define ERROR 0 typedef ...

  8. python解决约瑟夫问题_Python实现约瑟夫环问题的方法

    本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...

  9. 约瑟夫环(约瑟夫问题)求最后出列的人数

    约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出 ...

最新文章

  1. python基于水色图像的水质评价_基于Python和遥感图像的膨胀与腐蚀操作
  2. CFHD打的爽就继续下去,打的不爽就?
  3. 天不知道地知道你不知道我知道谜底_温州这里有个7000平方米的“寻宝”地,你不知道就亏大了!...
  4. 景霄讲解Python部分内部实现
  5. sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询
  6. atitit.gui界面纵向居中总结
  7. 小米一键上锁工具_便宜好用:小米智能门锁E 上手体验报告
  8. 认识常见的显卡外接口
  9. ST7789-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
  10. 全世界时差整理(不含夏冬令时)
  11. Excel -- 行列数据移动(移动复制)
  12. 程序员裸辞,利用1个月时间全力找工作,怎么样?
  13. matlab ext2int,PF_MATLAB_new 一个非常不错的粒子滤波工具箱,基于面向对象的思 实 实现非线性 ,包 238万源代码下载- www.pudn.com...
  14. ubuntu双系统引导梅花_Win10+ubuntu 双系统安装顺顺利利!
  15. CentOS无人值守安装
  16. 专用集成电路 -- 反相器
  17. 命令查看spf_什么是SPF、邮箱域名SPF记录查询方法
  18. 关于使用github布置定时任务给别人哟
  19. 我用深度学习做个视觉AI微型处理器!
  20. 李纳斯是个怎样的人?

热门文章

  1. Linux之杀死进程(kill)
  2. ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。
  3. CSDN-屏蔽广告详细方法 仅对谷歌浏览器有效!
  4. linux里那些依赖包
  5. 洛谷3384:【模板】树链剖分——题解
  6. 初识hibernate小案例
  7. android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
  8. CVE-2013-2551漏洞成因与利用分析(ISCC2014 PWN6)
  9. Android 导入项目时出现错误的解决方法(红色感叹号)
  10. 高效模式编写者的7个习惯