Description

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

Input

本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。
 

Output

共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。
 

Sample Input

2 20 40
 

Sample Output

1 7 19 1 19 37
 
问题分析
显然最初士兵之间的间隔为1、1......,但是在报二后,只留下奇数位,从而导致他们的间隔会翻倍变为2、2.....,
1  2  3  4  5  6  7.....
1      3      5     7......
而在报三后每三个数失去一位,则间隔变为2、4......
1  3  5  7  9  11  13.......
1  3      7  9       13.......
 
由此假设报二的次数为n次,报三的次数为n次(n!=0)
得士兵排序为1   1+2*3E(n-1)   1+2*3En;  
 
注意:N<=3 和 排列序号大于士兵人数N的情况 以及报二报三次数不一致的情况。
 
 #include "iostream"

 using namespace std;

 int main()
{
int t,N;
int i,j,k;
cin>>t;
while (t--)
{
i=;
j=;
cin>>N;
k=N;
if (N<=)
{
for (int i=;i<=N;i++)
{
cout<<i;
if (i!=N)
cout<<' ';
else
cout<<endl;
}
continue;
}
while ()
{
N = N-N/;
i = i+j; j = i;
if (N <= )
break;
N = N-N/;
j = i+j;
if (N <= )
break;
}
cout<<<<' '<<i+;
if (i+j+<=k)
cout<<' '<<i+j+;
cout<<endl;
}
return ;
}
 
 
 
 
 
 
 
 
 
 
 
 

暑假集训(1)第一弹 -----士兵队列训练问题(Hdu1276)的更多相关文章

  1. 暑假集训(4)第一弹 -----递推(Hdu2039)

    题意梗概:fff团团员小A想退团了,不过要退团,他必须绘制出贤者法阵,以证明他有资格不受大fff之灵的监督 并退团,小A他现在要开始收集材料了,但是,他不清楚应该买多少份材料. 虽然你并不想帮他退团, ...

  2. 暑假集训(5)第一弹——— Super Jumping! Jumping! Jumping!(hdu1087)

    题意概括:在上次与娑殚的三次博弈中,你们都取得了胜利.便向娑殚提出要求,借助他的力量,传送到一个安全的地方. 你们的愿望达成了,不过,你和小A似乎失散了. 街上人来人往的特别热闹,每一个人的脸上都洋溢 ...

  3. 暑假集训(3)第一弹 -----还是畅通工程(hdu1233)

    题意梗概:N(n<100)个村子想要富起来,自然就要先修路,不过到底还是没富起来,所以陷入了一个怪圈 :资金不足->修不起路->资金不足...... 为了实现走向全民小康社会,全面实 ...

  4. 暑假集训(2)第一弹 -----Is It A Tree?(Poj308)

    A - Is It A Tree? Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:10000KB  ...

  5. 2016HUAS暑假集训题1 A-士兵队列训练问题

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

  6. 暑假集训(3)第二弹 -----Jungle Roads(Hdu1301)

    问题梗概:自从上次某个acmer来设计了拉格瑞圣岛的交通路线后,岛上的酋长就相当苦恼,他发现,虽然这些修好的公路便利了岛上的 交通,并且让拉格瑞圣岛的旅游业更加兴旺,甚至他们还收到了一笔不小的国际资金 ...

  7. 暑假集训(4)第二弹 -----递推(hdu2254)

    题意概括:上次小A在你的帮助下成功炼成贤者法阵的第一部分——三角分隔,现在他准备绘制法阵的第二部分——莫测矩形. 而他又遇到了一个问题,他不知道不同矩形到底有多少个. 秉持帮人帮到底,送佛送到西的基本 ...

  8. 暑假集训(2)第二弹 ----- The Suspects(POJ1611)

    B - The Suspects Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:20000KB   ...

  9. 暑假集训(5)第二弹———湫湫系列故事——减肥记I(hdu4508)

    问题描述:舔了舔嘴上的油渍,你陷在身后柔软的靠椅上.在德源大赛中获得优胜的你,迫不及待地赶到“吃到饱”饭店吃到饱.当你 正准备离开时,服务员叫住了你,“先生,您还没有吃完你所点的酒菜.”指着你桌上的一 ...

随机推荐

  1. WPF布局系统[转]

    转自:http://www.cnblogs.com/niyw/archive/2010/10/31/1863908.html前言 前段时间忙了一阵子Google Earth,这周又忙了一阵子架构师论文 ...

  2. JS跨域笔记

    什么是跨域,跨域是指不同域之间相互访问,只要协议.域名.端口有任何一个不同,都被当作是不同的域. 对于端口和协议的不同,只能通过后台来解决,前台是无能为力的. 受浏览器同源策略的限制,本域的js不能操 ...

  3. Mysql常见问题及优化

    本文将就以下三个问题进行展开: 1.库表设计 2.慢 SQL 问题 3.误操作.程序 bug 时怎么办 一.库表设计 1.1 引擎选择 在 mysql 5.1 中,引入了新的插件式存储引擎体系结构,允 ...

  4. [置顶] 程序员必知(三):一分钟知道URI编码(encodeURI)

    因为浏览器会用一些特殊的字符作为特定的意义,所以在要传输的内容上如果有这些特殊的字符的话,就需要对其进行转义才能正确传输,如以下字符为发送时候的关键字,即特殊字符 ;/?:@&=+$,# 所以 ...

  5. .NET托管代码和非托管代码

    .net托管代码是运行在.NET FRAMEWORK上的,类似于JAVA虚拟机托管代码:属安全代码,因为不涉及指针,但相对性能上较低,C#写出来的东西就可以认为是托管代码非托管代码:非安全的,可以使用 ...

  6. JBPM学习(五):流程变量

    1.启动流程实例 // 启动流程实例 @Test public void startProcessInstance() { // 使用指定key的最新版本的流程定义启动流程实例 ProcessInst ...

  7. insert例子

    11.20 使用insert代替下标操作. #include<iostream> #include<map> #include<string> #include&l ...

  8. 台湾书籍代购网址——2013-08-25 16

    台湾书籍代购 博客来http://www.books.com.tw 三民http://www.sanmin.com.tw 诚品http://www.eslite.com 金石堂http://www.k ...

  9. iOS中的imageIO与image解码

    ImageIO对外开放的对象有CGImageSourceRef.CGImageDestinationRef,不对外开放的对象有CGImageMetadataRef.CoreGraphics中经常与im ...

  10. mongo数据管理java简易版

    mongo是搭建在局域网服务器上的,处理起来比较麻烦,于是自己写了个简单的处理工具. 如果有对java操作mongo不太了解的也可以在这里看下简单的示例. 只有增删改查的功能,而且只支持json格式的 ...