• 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

  • 相关阅读:
    7. ZooKeeper的stat结构
    6. ZooKeeper访问控制列表
    5. 监视和ZooKeeper操作
    4. ZooKeeper 基本操作
    3.Apache ZooKeeper数据模型
    Eclipse安装Activiti Designer插件
    Javascript Canvas验证码
    Tomcat9配置SSL连接
    JAVA将异常的堆栈信息转成String
    SpringBoot2静态资料访问
  • 原文地址:https://www.cnblogs.com/fjutacm/p/3077041.html
Copyright © 2020-2023  润新知