Josephus问题(模拟)
来源:互联网 发布:centos 任务管理器 编辑:程序博客网 时间:2024/06/05 22:08
题目:约瑟夫问题,输入小孩人数num和每数到第m个小孩离开,问最后一个小孩是原序列第几个?
数据范围:num,m<=10000;
思路:有两种方法,第一种按题意直接模拟(时间复杂度较大),第二种通过倒推出通项,在此不赘述;
代码(一):
#include <bits/stdc++.h>using namespace std;const int maxn=10000;int num,m;int a[maxn]; int main(){while(cin>>num>>m){for(int i=0;i<num;i++) a[i]=i+1;int k=1,i=-1;//k代表第k个小孩的离开 while(1){for(int j=0;j<m;){i=(i+1)%num;if(a[i]!=0) j++;//核心操作 }if(k==num) break;a[i]=0;//标识小孩离开 k++; }cout<<a[i]<<endl; }return 0;}
代码(二):
#include <bits/stdc++.h>using namespace std;int num,m,r;int main(){while(cin>>num>>m){for(int k=1;k<=num;k++) r=(r+m)%k;cout<<r+1<<endl; }return 0;}
阅读全文
0 0
- Josephus问题(模拟)
- 约瑟夫(Josephus)问题
- 约瑟夫(Josephus)问题
- 约瑟夫(Josephus)问题
- Josephus问题(约瑟夫环)
- 算法(一):Josephus问题
- Josephus(约瑟夫环)问题
- Josephus(约瑟夫斯)问题
- 约瑟夫问题(Josephus problem)
- 约瑟夫问题(Josephus Problem)
- 约瑟夫问题(Josephus problem)
- Josephus问题
- Josephus问题
- Josephus问题
- Josephus问题
- josephus 问题
- Josephus问题
- Josephus问题
- 微信公众号点击分享生成分享的图片,可以调整二维码,头像,昵称到背景图指定位置
- Git之分支创建策略
- ORA-01119:创建数据库文件***出错,ORA-27040:文件创建错误,无法创建文件;OSD-04002:无法打开文件;O/S-Errer:(OS 123)文件名,目录名,或卷标语法不正确
- docker镜像创建与基本使用
- Apache 占位符工具类
- Josephus问题(模拟)
- HTML5 2017.07.21
- HashMap使用经验(下)
- ios上架隐私政策
- 大数模板
- 苹果刷机攻略(实操)
- 判断浏览器的类型(微信,安卓,IOS)
- js在浏览器输出console.log
- JAVA实现事件委托模式