UVa133 - The Dole Queue
题意:给出一个数组,分别从1和N开始数k,m,然后将选中的数删除,继续直到数组长度为0
思路:主要是用stl中的list
代码如下:
#include <iostream>
#include <fstream>
#include <list>
#include <iomanip>using namespace std;void solve(int n, int k, int m);int main()
{
#ifndef ONLINE_JUDGEifstream fin("F:\\OJ\\uva_in.txt");streambuf *old = cin.rdbuf(fin.rdbuf());
#endifint n, k, m;while (cin >> n >> k >> m){if (n == 0 && k == 0 && m == 0) break;solve(n, k, m);}#ifndef ONLINE_JUDGEcin.rdbuf(old);
#endifreturn 0;
}void solve(int n, int k, int m)
{list<int> l;for (int i = 1; i <= n; i++){l.push_back(i);}list<int>::iterator kit = l.begin(), mit = --l.end();while (l.size() != 0){for (int i = 1; i < k; i++){kit++;if (kit == l.end()) kit = l.begin();}for (int i = 1; i < m; i++){mit--;if (mit == l.end()) mit = --l.end();}if (*kit == *mit){cout << setw(3) << right << *kit;kit = l.erase(kit);if (kit == l.end()) kit = l.begin();mit = kit;mit--;if (mit == l.end()) mit = --l.end();if (l.size() != 0) cout << ",";}else{cout << setw(3) << right << *kit << setw(3) << right << *mit;list<int>::iterator it = kit;it++; if (it == l.end()) it = l.begin();if (it == mit){mit = l.erase(mit);if (mit == l.end()) mit = --l.end();kit = l.erase(kit);if (kit == l.end()) kit = l.begin();mit--;if (mit == l.end()) mit = --l.end();}else{kit = l.erase(kit);if (kit == l.end()) kit = l.begin();mit = l.erase(mit);if (mit == l.end()) mit = --l.end();else{mit--;if (mit == l.end()) mit = --l.end();}}if (l.size() != 0) cout << ",";}}cout << endl;
}
UVa133 - The Dole Queue相关推荐
- UVA-133 The Dole Queue 救济金发放
一.题目 In a serious attempt to downsize (reduce) the dole queue, The New National Green Labour Rhinoce ...
- 算法竞赛入门经典(第二版) | 例题4-3 救济金发放 (UVa133,The Dole Queue)
提目(提交)链接→UVa-133 百度翻译→百度翻译 没使用过该网站的同学请猛戳这里→vJudge教程 分析: 最开始的固有思维是循环就用循环链表,其实完全可以把它看成一个大一点的周期类型题(一个大周 ...
- 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 ...
- 救济金发放(The Dole Queue)
n(n<20)个人站成一圈,逆时针编号为1~n.有两个官员,A从1开始逆时针数,B从n开始顺时针数.每一轮中A数到k个就停下来,B数到m个就停下来(注意有可能两个官员停在同一个人身上).接下来被 ...
- ACM题解系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
题是书中的题,解法参照了书中的解法,不少解法都做了简化和改进. 做程序,就要努力做到自己的程序是最好的! 第3章例题 POJ1488 UVA272 UVALive5381 TEX Quote[输入输出 ...
- TYUT-A专题题解(一)
TYUT-A专题题解(一) 01A Ad Hoc UVA353 LA5247 Pesky Palindromes[回文] - 海岛Blog - CSDN博客 UVA947 Master Mind He ...
- Competitive Programming 3题解
题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...
- Competitive Programming专题题解(1)
Competitive Programming题解 AOAPC I: Beginning Algorithm Contests 题解 CP2-1.1.1 Easy(Ad Hoc Problems) P ...
最新文章
- 数学公式太晦涩,不如用代码写出来:这是程序员学数学的独特方式
- 苏黎世联邦理工学院SML课题组招收统计机器学习全奖博士生
- 转载:谢谢原作者:块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动)
- 织梦 css里的图片标签,织梦{dede:field.body /}中用CSS的expression参数控制图片大小
- java各map中存放null值
- Python入门--列表,字典,元组,集合总结
- 查看各浏览器各版本的兼容情况
- 子过程或函数未定义_Power Pivotamp;Power BI DAX函数说明速查
- 华为鸿蒙系统老手机能用吗_华为发布鸿蒙2.0手机开发者测试版!华为老手机可申请公测...
- 数字化医院网络终端安全管理
- 电驴(easyMule)自动关机工具
- r5驱动 索尼exmor_索尼Exmor APS HD CMOS弱光测试
- oracle 文本日期相减,日期相减等于整数的问题
- 应对风险和机会的措施讲解
- TTime::FormatL 详解
- C. Removing Smallest Multiples codeforces 1734C
- python语言下同一个类下有多个函数,其中一个函数想调用另外一个函数里面的变量怎么调用
- 移动设备管理软件优劣,南京烽火星空来判别
- zabbix 5.0中自定义监控单个IP的最大流量
- 海伦公式已知三边求面积
热门文章
- 机器学习笔记(二)逻辑回归和正则化
- 一个关于异步的纠结问题
- excel调用python编程-用Python如何开发Excel宏脚本?新手必学
- python科学计算基础教程pdf下载-Python科学计算基础教程_PDF电子书
- 机器人编程语言python-入门篇丨使用EV3机器人,趣味学习Python编程语言~
- python读取文件多行内容-使用python读取.text文件特定行的数据方法
- python 调用linux命令-四种执行python系统命令的方法
- 学python需要什么基础知识-学习Python需要知道哪些基础入门知识?
- python编程入门经典实例-终于明了python入门经典实例
- python上海培训哪里比较好-上海python培训哪家好 Python需要多久学会