**

HDUOJ1276士兵队列训练

**
士兵队列训练问题
某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。

Input
本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。
Output
共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。
Sample Input
2
20
40
Sample Output
1 7 19
1 19 37
代码如下:

#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{int n;cin>>n;while (n--){queue<int>q;int m,k,b,c;cin>>m;int a=1;for (int i=1;i<=m;i++)q.push(i);while(q.size()>3){c=q.size();//该队列元素的个数if (a%2!=0)//a为基数,则1,2报数{a++;for (int i=1;i<=c/2;i++){k=q.front();//取出队首元素q.push(k);//将队首元素放入队尾q.pop();//删除队首元素q.pop();//直接删除第二个元素(因为是1,2报数)}if(c%2!=0)//防止该队列元素为基数个,为基数个的时候得将最后一个元素也放入最后{k=q.front();//如果刚开始的时候为奇数个,那么最后还有一个人没被循环过q.push(k);//放队尾q.pop();//抛弃}}else//1,2,3报数,和1,2报数思路一样{a++;for (int i=0;i<c/3;i++)//1,2,3报数,和1,2报数处理思路一样{k=q.front();q.push(k);q.pop();b=q.front();q.push(b);q.pop();q.pop();}while(c%3!=0)//这里和前面的道理一样,防止有人未处理完{c--;k=q.front();q.push(k);//处理剩余的那几个q.pop();}}}while(q.size()!=1)//输出,控制格式{printf("%d ",q.front());q.pop();}printf("%d\n",q.front());}
}

HDUOJ士兵队列训练相关推荐

  1. HDU1276 士兵队列训练问题【模拟+array+vector+list】

    士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  2. 士兵队列训练问题 (队列 c++)

    士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  3. hdoj 1276 士兵队列训练问题 模拟队列

    士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  4. 士兵队列训练问题(队列+超详细解析)

    士兵队列训练问题 HDU - 1276 目录 士兵队列训练问题 HDU - 1276 题意描述:输入的新兵人数,按照先报1.2,将2出列:接着按1.2.3报数,将3出列.重复上述循环,直到所剩人数不超 ...

  5. dhu 4.1 队列模板简单应用算法设计:士兵队列训练

    队列模板简单应用算法设计:士兵队列训练 时间限制: 1S类别: DS:队列->队列定义及应用 晚于: 2022-05-04 23:55:00后提交分数乘系数50% 截止日期: 2022-05-0 ...

  6. 杭电1276:士兵队列训练问题

    士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  7. 士兵队列训练问题 HDU - 1276

    题目 士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  8. 士兵队列训练问题/队列/C语言表达

    士兵队列训练问题 Title Description 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢, ...

  9. hdu 1276 士兵队列训练问题

    士兵队列训练问题 HDU - 1276 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行 ...

最新文章

  1. 我的2009:心智成长篇
  2. (POJ 3026) Borg Maze 最小生成树+bfs
  3. [WC2018]通道
  4. vnc--centos 7 安装和配置
  5. carbon 验证时间格式_接口测试:用好“变量”,重复验证也不怕
  6. 防火墙(13)——实现路由转发功能(1)
  7. 防火墙软件测试工资,防火墙的性能测试
  8. idea中右侧的Maven框消失了
  9. java stringutils_Java 笔记----- StringUtils 拼接字符
  10. java基础- 与null的区别
  11. MyBatis源码解读之源码结构
  12. React 记坑 ----- 关于 react-redux 中共享状态更新时自动重新 render 页面的问题
  13. win7 C盘空间越来越小 Windows文件夹变大的问题
  14. activity的跳转
  15. 有道计算机网络知识,网易有道推广介绍1 让你了解到网易的知识。。。.pptx
  16. (附源码)springboot助农电商系统 毕业设计 081919
  17. 【java】根据当前时区获取时间
  18. 蓝本蓝科技:私域运营为什么要做会员?会员体系的优势?
  19. 如何用切片工具做html网页,ps中的切片工具怎么用,怎么将html文本添加到切片...
  20. PHP上传图片至OSS

热门文章

  1. 货币分拣设备行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  2. eclipse版本说明及下载地址
  3. 365天深度学习训练营-第J2周:ResNet50V2算法实战与解析
  4. Git——eclipse中冲突的解决
  5. PLC:22个基本梯形图和指令表,一图一指令,爱好者必备
  6. Sigcomm2017 Credit-Scheduled Delay-Bounded Congestion Control for Datacenters 论文阅读
  7. 如何用PHP和MySQL上传视频?
  8. 仿360一键清理实现(一)
  9. MS5611气压计原理图设计
  10. STM32F767串口通信------USART中断接收