HDU2925(约瑟夫环问题)
题意: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(约瑟夫环问题)相关推荐
- python中约瑟夫环程序_Python实现约瑟夫环问题的方法
本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...
- 约瑟夫环问题的两种解法(详解)
约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...
- python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...
问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...
- 一文读懂约瑟夫环算法
2020-05-25 20:13:40 作者 | 扬帆向海 责编 | 王晓曼 出品 | CSDN博客 问题描述 约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的 ...
- 面试题小记:1、统计字符串出现的次数,2、约瑟夫环问题
今天面到了一个比较有意思的笔试题,先记录一下: 1.字符串类似'aaabbccddd',写个方法得出'3a2b2c3d',即统计字符串出现的个数 $arr = str_split('aaabbccdd ...
- java实现简单的约瑟夫环问题(二)
Josephus(约瑟夫)问题的数学方法 前面的内容都是直接来来自于百度百科,后面才是我对这段话的理解 无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间 ...
- 约瑟夫环双向链表c语言实,双向链表与约瑟夫环代码
双向链表 //注意:该文件操作的链表为带头结点双向链表,头结点数据为-1 #include #include #include #define OK 1 #define ERROR 0 typedef ...
- python解决约瑟夫问题_Python实现约瑟夫环问题的方法
本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...
- 约瑟夫环(约瑟夫问题)求最后出列的人数
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出 ...
最新文章
- python基于水色图像的水质评价_基于Python和遥感图像的膨胀与腐蚀操作
- CFHD打的爽就继续下去,打的不爽就?
- 天不知道地知道你不知道我知道谜底_温州这里有个7000平方米的“寻宝”地,你不知道就亏大了!...
- 景霄讲解Python部分内部实现
- sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询
- atitit.gui界面纵向居中总结
- 小米一键上锁工具_便宜好用:小米智能门锁E 上手体验报告
- 认识常见的显卡外接口
- ST7789-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
- 全世界时差整理(不含夏冬令时)
- Excel -- 行列数据移动(移动复制)
- 程序员裸辞,利用1个月时间全力找工作,怎么样?
- matlab ext2int,PF_MATLAB_new 一个非常不错的粒子滤波工具箱,基于面向对象的思 实 实现非线性 ,包 238万源代码下载- www.pudn.com...
- ubuntu双系统引导梅花_Win10+ubuntu 双系统安装顺顺利利!
- CentOS无人值守安装
- 专用集成电路 -- 反相器
- 命令查看spf_什么是SPF、邮箱域名SPF记录查询方法
- 关于使用github布置定时任务给别人哟
- 我用深度学习做个视觉AI微型处理器!
- 李纳斯是个怎样的人?
热门文章
- Linux之杀死进程(kill)
- ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。
- CSDN-屏蔽广告详细方法 仅对谷歌浏览器有效!
- linux里那些依赖包
- 洛谷3384:【模板】树链剖分——题解
- 初识hibernate小案例
- android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
- CVE-2013-2551漏洞成因与利用分析(ISCC2014 PWN6)
- Android 导入项目时出现错误的解决方法(红色感叹号)
- 高效模式编写者的7个习惯