士兵队列训练问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4605    Accepted Submission(s): 2148

Problem Description
某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。
Input
本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。
Output
共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。
Sample Input
2
20
40

Sample Output
1 7 19
1 19 37

Author
Cai Minglun
Source
杭电ACM集训队训练赛(VI)
Recommend
lcy   |   We have carefully selected several similar problems for you:  1282 1279 1274 1256 1275 
//ac:
 1 #include <cstdio>
 2 #include <iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     int text, i, n, k, j;
 7     int a[5050], b[5050];
 8     scanf("%d", &text);
 9     while(text--)
10     {
11         scanf("%d", &n);
12         for(i=1; i<=n; i++)
13         {
14             a[i] = i;
15             b[i] = 0;
16         }
17         k = n;
18         while(k > 3)
19         {
20             for(j=0, i=1; i<=n; i++)
21             {
22                 if(!b[i])
23                 {
24                     j++;
25                     if(j % 2 == 0)
26                     {
27                         b[i] = 1;
28                         k--;
29                     }
30                 }
31             }
32             if(k <= 3)
33                 break;
34             for(j=0, i=1; i<=n; i++)
35             {
36                 if(!b[i])
37                 {
38                     j++;
39                     if(j % 3 == 0)
40                     {
41                         b[i] = 1;
42                         k--;
43                     }
44                 }
45             }
46         }
47         printf("%d", a[1]);
48         for(i=2; i<=n; i++)
49         {
50             if(!b[i])
51             printf(" %d",a[i]);
52         }
53         printf("\n");
54     }
55     return 0;
56 } 

//简单的思路, 我要体会学习的奥妙。~

转载于:https://www.cnblogs.com/soTired/p/4696899.html

杭电1276--士兵队列训练问题相关推荐

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

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

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

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

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

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

  4. 1276 士兵队列训练问题【队列模拟】

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

  5. 解题报告:hdu 1276 士兵队列训练问题 - 简单题

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

  6. hdu 1276 士兵队列训练问题 (详解)

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

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

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

  8. HOJ 1276 士兵队列训练问题(stl, 水题)

    stl, 水题 本题要点: 1.用 list 模拟即可. 2.题目可能的歧义的地方: 有两种选法, 选法1:每2个出列一个, 选法2:每3个出列一个. 结束条件,每完成一种选法后,如果剩下的数 < ...

  9. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

最新文章

  1. IT人员健康信号之颈椎病自疗
  2. 高并发系统—通用设计方法
  3. lisp实战文库_LISP编程举例
  4. Android开发学习笔记-自定义对话框
  5. mysql 慢日志报警_一则MySQL慢日志监控误报的问题分析
  6. sudo命令_如何用一条sudo命令让标志性的Mac开机提示音回归
  7. [模拟] hdu 4452 Running Rabbits
  8. 哈尔滨工程大学微型计算机原理与接口技术,2017年哈尔滨工程大学 哈工大 微型计算机原理与接口技术 复试硕士招生考试大纲...
  9. error: numpy/arrayobject.h No such file or directory解决方法
  10. class循环获取 Undefined var str = '';
  11. php imagick gif,PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
  12. Spark SQL初始化和创建DataFrame的几种方式
  13. 软件行业做了3年,何去何从?到底该搞哪个方面?迷茫+努力
  14. 使用AjaxPro实现ajax效果
  15. NXP数学电机库PI控制器参数的理解
  16. 要知其然还要知其所以然printChar
  17. Linux 脚本修改ps1,Linux使环境变量PS1的修改永久生效——修改配置文件/etc/profile...
  18. t台式计算机如何安装2个硬盘,台式机械硬盘怎么安装?机械硬盘安装图解教程(SATA固态可参考)(2)...
  19. 微信运营——利用python自动加微信(通往销冠之路)
  20. easyui表格自动换行

热门文章

  1. /boor删除恢复,
  2. 请问用Microsoft的VFW函数库怎样设置摄像头的速度?
  3. EditPlus 更新到 v2.31 Build 488(附下载)
  4. vue ts 监听路由改变
  5. MySQL 错误1418
  6. MATLAB常用函数, 常见问题
  7. oracle安装问题: 11g安装未填写hosts导致弹窗错误
  8. linux下查看已经安装的jdk 并卸载jdk
  9. 部署CFCA_RA本地测试环境
  10. Failed to load JavaHL Library(windows和mac)