zoukankan      html  css  js  c++  java
  • HDU 1276 士兵队列训练问题

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

    题意:略。

    分析:直接进行模拟,虽然算法有点笨。

    AC源代码(C语言):

     1 #include<stdio.h>
     2 
     3 int main()
     4 {
     5     int data[5001];
     6     int i,N,T,a,b;
     7     scanf("%d",&N);
     8     while(N--)
     9     {
    10         scanf("%d",&T);
    11         a=T;
    12 
    13         for(i=1;i<=T;i++)
    14             data[i]=i;
    15         while(a>3)              //这里不能用do--while,因为当输入的T小于3时,不进入循环!否则程序是WA!
    16         {
    17             b=0;
    18             for(i=1;i<=T;i++)
    19             {
    20                 if(data[i]==0) continue;
    21                 else  b+=1;
    22                 if(b==2)
    23                 {
    24                     data[i]=0;
    25                     b=0;
    26                 }
    27             }
    28             a=a-a/2;
    29             if(a<=3) break;
    30             b=0;
    31             for(i=1;i<=T;i++)
    32             {
    33                 if(data[i]==0) continue;
    34                 else b+=1;
    35                 if(b==3)
    36                 {
    37                     data[i]=0;
    38                     b=0;
    39                 }
    40             }
    41             a=a-a/3;
    42         }
    43         b=0;
    44         for(i=1;i<=T;i++)
    45         {
    46             if(data[i]==0) continue;
    47             else
    48             {
    49                 b+=1;
    50                 if(b==a)
    51                     printf("%d\n",data[i]);
    52                 else
    53                     printf("%d ",data[i]);
    54             }
    55         }
    56     }
    57     return 0;
    58 }

     2013-05-14

  • 相关阅读:
    vue-cli项目打包出现空白页和路径错误问题
    Git操作手册
    Atom Editor 插件 atom-less 的使用方法
    Vue搭建
    使绝对定位高宽自适应
    原生JS表单序列化
    前端代码有关搜索引擎的代码
    网页局部打印
    万维网
    浅淡传统企业进入移动互联网的几种方式
  • 原文地址:https://www.cnblogs.com/fjutacm/p/3077041.html
Copyright © 2011-2022 走看看