POJ3750
来源:互联网 发布:java求职简历自我评价 编辑:程序博客网 时间:2024/06/03 21:46
#include <iostream>#include <stdio.h>#include <cstring>using namespace std;int main(){ int i,j,w,s,n; char a[65][16]; int p[65]; scanf("%d",&n); for(i=1;i<=n;i++) { p[i]=i; scanf("%s",&a[i]); } scanf("%d,%d",&w,&s); w=(w+n)%n; while(n-1){ w=(w+s-1)%n; printf("%s\n",a[p[w]]); for(j=w;j<n;j++) p[j]=p[j+1]; n--; cout<<w<<" "<<n<<endl; } return 0;}//WA代码↑
POJ3750
题意:约瑟夫环问题。
输入:
n(人数)
str(人的姓名)
w(起始下标)s(间隔人数)
输出:
str(人的姓名)
思路:约瑟夫环问题,直接模拟起始w=(w+n-1)%n,出去下标w=(w+s-1)%n,在后面要把环的下标更新即可。
AC代码:
#include <iostream>#include <stdio.h>#include <cstring>using namespace std;int main(){ int i,j,w,s,n; char a[65][16]; int p[65]; scanf("%d",&n); for(i=0;i<n;i++) { p[i]=i; scanf("%s",&a[i]); } scanf("%d,%d",&w,&s); w=(w+n-1)%n; while(n){ w=(w+s-1)%n; printf("%s\n",a[p[w]]); for(j=w;j<n-1;j++) p[j]=p[j+1]; n--; // cout<<w<<" "<<n<<endl; } return 0;}
0 0
- poj3750
- POJ3750
- poj3750
- POJ3750 约瑟夫环
- poj3750 小孩报数问题
- poj3750(模拟+约瑟夫环)
- poj3750-小孩报数
- poj3750 小孩报数问题
- poj3750约瑟夫环,循环队列
- poj3750单向循环链表
- POJ3750 小孩报数问题【模拟】
- 关于双向链表的创建 poj3750
- 北大ACM poj3750 小孩报数问题
- POJ3750 循环链表解决约瑟夫问题
- poj3750 大大水题 双向循环链表
- 笔试的一道题(字符串反转poj3750)
- 北京大学ACM---poj3750---小孩报数问题(循环链表求解法)
- Ubuntu下Sublime Text 2的安装
- ScrollView起始位置不是最顶部的解决办法
- 分割
- 在游戏中添加Chipmunk 物理引擎
- JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedur
- POJ3750
- ScrollView起始位置不是最顶部的解决办法
- 【Android】检测是否处于Wifi环境,利用WebView实现浏览器app
- PTAM算法流程介绍
- Cantor的数表,注意一些题中数学的应用
- 正则表达式常用元字符
- IOS开发系列--IOS程序开发概览(翻译自Kenshin Cui's Blog)
- Codeforces 558E A Simple Task(线段树区间更新)
- 添加php扩展 此博文包含图片(2014-04-24 16:22:49)