救济金发放(The Dole Queue)
n(n<20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开始顺时针数。每一轮中A数到k个就停下来,B数到m个就停下来(注意有可能两个官员停在同一个人身上)。接下来被官员选中的人(1个或2个)离开队伍。
输入n,k,m输出每轮中被选中的人的编号(如果有两个人,先输出被A选中的)。
例如,n=10,k=4,m=3,输出为4 8,9 5,3 1,2 6,10, 7
注意:输出的每个数应恰好占3列
//采用自顶而下的方法编写程序,用一个大小为0的数组表示人站成的圈。为避免人走后移动数组元素,用0表示离开队伍的人
#include<stdio.h>
#define maxn 25
int n,k,m,a[maxn];
//逆时针走t步,步长是d(-1表示顺时针走),返回新位置
int go(int p,int d,int t)
{while(t--){do{p=(p+d+n-1)%n+1;}while(a[p]==0);//走到下一个非0数字 }return p;
}
int main()
{while(scanf("%d%d%d",&n,&k,&m)==3&&n){for(int i=1;i<=n;i++){a[i]=i;}int left=n;//还剩下的人数int p1=n,p2=1;while(left){p1=go(p1,1,k);p2=go(p2,-1,m);} printf("%3d",p1);left--;if(p2!=p1){printf("%3d",p2);left--;}a[p1]=a[p2]=0;if(left){printf(",");}printf("\n";)}return 0;
}
救济金发放(The Dole Queue)相关推荐
- UVA-133 The Dole Queue 救济金发放
一.题目 In a serious attempt to downsize (reduce) the dole queue, The New National Green Labour Rhinoce ...
- UVA - 133 The Dole Queue
The Dole Queue UVA - 133 题目传送门 模拟一遍过程,注:可能会选中同一个人 AC代码: #include <cstdio> #include <iostrea ...
- 【UVA】 133 --- The Dole Queue
[UVA] 133 --- The Dole Queue In a serious attempt to downsize (reduce) the dole queue, The New Natio ...
- 算法竞赛入门经典(第二版) | 例题4-3 救济金发放 (UVa133,The Dole Queue)
提目(提交)链接→UVa-133 百度翻译→百度翻译 没使用过该网站的同学请猛戳这里→vJudge教程 分析: 最开始的固有思维是循环就用循环链表,其实完全可以把它看成一个大一点的周期类型题(一个大周 ...
- ACM题目:救济金发放
思路: 1. 使用数组que记录在队伍中的人,数组索引范围是 1~n: 2. 用book标记离开队伍的人 3.用 left 记录队伍剩下的人数,left=0的时候,就可以结束循环: 3.分别从que[ ...
- UVa133 - The Dole Queue
题意:给出一个数组,分别从1和N开始数k,m,然后将选中的数删除,继续直到数组长度为0 思路:主要是用stl中的list 代码如下: #include <iostream> #includ ...
- 蓝桥杯 真题 救济金发放、分糖果、刽子手游戏
题目 n(n<20)个人站成一圈,逆时针编号为1-n.有两个官员,A从1开始逆时针数,B从n开始顺时针数.在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上 ...
- 初学者acm的练习题指南
上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1. <!--[endif]-->Programming Bas ...
- 算法竞赛入门第二版解题报告
第四章 函数和递归 1.例子 1339 - Ancient Cipher(排序) 489 - Hangman Judge (set使用) 133 - The Dole Queue(list使用) 21 ...
最新文章
- Error in plot.new() : figure margins too large
- 软件相关模块与ansible剧本
- MM--发票校验 及基于采购订单的MIRO发票校验过程
- Cloud Fiori Launchpad
- JZOJ 2678. 树B
- UVA - 11181 数学
- 【BZOJ4516】生成魔咒,后缀数组+Splay
- Oracle 11gR2 GI基本安装手册
- oracle中的内连接和外连接区别
- qemu-img 镜像转换工具使用
- 【家庭网络】申请安装移动宽带过程及简单建议
- 2018-2019-2 20189215 《网络攻防技术》第八周作业
- webkit未能加载文件或程序集WebKitBrowser
- Pandas完美读取html格式的Excel所有隐藏数据
- 企业上云成趋势 看超融合如何开箱即用、一步上云
- php 检测英文字符,php正则验证中英文字符串 - 小俊学习网
- 离散数学中Warshall算法简析
- 学人工智能可以干什么?AI岗位有哪些?
- 使用gstreamer,rtsp拉流,保存图像, jeston,使用硬件加速nvdec/nvenc
- RPA or 爬虫?模拟人工访问某服务平台—增加空间的访问量