HDU 1276 士兵队列训练问题
2014-08-17 21:53
176 查看
/*
题目大意:先报到二的出列,剩下的人报到三的人出列,重复上述规律,直到剩下的人不超过三人
解题思路:用数组下标处理一下就可以了
难点详解:先设一个变量 x 用于控制剔除数标准,再将下标不能被x整除的数覆盖在原来的数上,之后就是将 x 变成下一个剔除数的标准
关键点:想起用数组的下标处理问题,考虑到特殊的情况
解题人:lingnichong
解题时间:2014-06-01 11:59:14 写 2014-08-16 09:35:36 重写
解题体会:一开始没想起用数组下标处理数,是个好题
*/
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3534 Accepted Submission(s): 1647
Problem Description
某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。
Input
本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。
Output
共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。
Sample Input
Sample Output
Author
Cai Minglun
Source
杭电ACM集训队训练赛(VI)
题目大意:先报到二的出列,剩下的人报到三的人出列,重复上述规律,直到剩下的人不超过三人
解题思路:用数组下标处理一下就可以了
难点详解:先设一个变量 x 用于控制剔除数标准,再将下标不能被x整除的数覆盖在原来的数上,之后就是将 x 变成下一个剔除数的标准
关键点:想起用数组的下标处理问题,考虑到特殊的情况
解题人:lingnichong
解题时间:2014-06-01 11:59:14 写 2014-08-16 09:35:36 重写
解题体会:一开始没想起用数组下标处理数,是个好题
*/
士兵队列训练问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3534 Accepted Submission(s): 1647
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)
#include<stdio.h> #define MAXN 5000+10 int a[MAXN]={0}; int main() { int n,m; int i,j; int x,k; scanf("%d",&n); while(n--) { scanf("%d",&m); if(m==1) printf("1\n"); else if(m==2) printf("1 2\n"); else if(m==3) printf("1 2 3\n"); else { for(i=1;i<=m;i++)//将每个数组的每个元素都赋值相应的数字 a[i]=i; x=2;//方便后面的将报到二和三的剔除 while(m>3)//直到剩下的人数小于三人为止 { k=1; j=m; for(i=1;i<=j;i++)//将不能被x整除的下标记录下来 ,并把里面的数记录下来 { if(i%x!=0) a[k++]=a[i];//留下下标不会被x整除的的下标 else m--;//如果下标可以被x整除,总数就减去一 } if(x==2)//变换x的值,用于下次的剔除下标所用 x=3; else x=2; } printf("1"); for(i=2;i<k;i++) { printf(" %d",a[i]); } printf("\n"); } } return 0; }
相关文章推荐
- HDU 1276 士兵队列训练问题
- HDU 1276 士兵队列训练问题
- HDU 1276 士兵队列训练问题
- HDU1276 士兵队列训练问题
- hdu 1276 士兵队列训练问题
- [置顶]hdu-1276-士兵队列训练问题
- hdu(1276)士兵队列训练问题
- hdu-1276-士兵队列训练问题
- 士兵队列训练问题
- hdu_1276 士兵队列训练问题
- 【ACM】hdu_1276_士兵队列训练问题_201308131032
- 杭电--1276--士兵队列训练问题--队列
- hdu 1276 士兵队列训练问题
- hdu,1276,士兵队列训练问题
- hdu 1276 士兵队列训练问题(STL的list)
- HDU1274 士兵队列训练问题
- C语言 杭电ACM 1276 士兵队列训练问题
- 杭电 1276 士兵队列训练问题
- 杭电1276 士兵队列训练问题
- 1276 士兵队列训练问题