码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1276 士兵队列训练问题

时间:2016-05-03 23:56:21      阅读:434      评论:0      收藏:0      [点我收藏+]

标签:

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

 

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

 

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

 

Sample Input
2
20
40
 

 

Sample Output
1 7 19
1 19 37

 

//注意输出格式,不然会PE;

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;

int main()
{
    int n,c,flag,j,tmp;
    bool data[5005];
    cin>>c;
    while(c--)
    {
        cin>>n;
        tmp=n;
        flag=1;
        memset(data,true,sizeof(data));
        while(tmp>3)
        {
            if(flag%2!=0)
            {
                 j=0;
                 for(int i=1;i<=n;i++)
                 {
                    if(data[i]==true)
                    j++;
                    if(j%2==0&&data[i]==true)
                    {
                      data[i]=false;
                      tmp--;
                    }
                 }
                 flag++;
            }
            else
            {
                j=0;
                for(int i=1;i<=n;i++)
                {
                    if(data[i]==true)
                    j++;
                    if(j%3==0&&data[i]==true)
                    {
                        data[i]=false;
                         tmp--;
                    }
                }
                flag++;
            }
        }
        int ji=0;
        int a[3];
        for(int i=1;i<=n;i++)
        {
            if(data[i]==true)
            {
                a[ji]=i;
                ji++;
            }
        }
        for(int i=0;i<ji-1;i++)
        {
            cout<<a[i]<<" ";
        }
        cout<<a[ji-1]<<endl;
    }
    return 0;
}

 

hdu 1276 士兵队列训练问题

标签:

原文地址:http://www.cnblogs.com/nefu929831238/p/5456857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!