新兵训练([email protected][email protected]=)

题意:

Description

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

Input

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

Output

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

Sample Input

2

20

40

Sample Output

1 7 19

1 19 37

思路:

士兵1-2报数时,用循环加公式i % 2 + 1 == 2把报到2的士兵找出来,将他们的编号变大,计算剩下的人,重新从大到小排列,士兵1-3报数也是如此。最后剩下三人就只要输出数组的前三个数就好了。

源代码:

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 #define maxn 5000
 5 int main()
 6 {
 7     int t;
 8     cin >> t;
 9     while (t--)
10     {
11         int count=0;
12         int a[maxn],num;
13         cin >> num;
14         int num1 = num;
15         for (int i = 0; i < num; i++)
16         {
17             a[i]=i+1;
18         }
19         while (num> 3)
20         {
21             for (int i = 0; i < num; i++)
22             {
23                 if (i % 2 + 1 == 2)
24                 {
25                     a[i] =num1+1;      //报数为2的士兵,编号变大。
26                     count++;
27                 }
28
29             }
30             sort(a, a + num);         //重新排序,让剩下的士兵排到前面。
31             num= num - num/2;        //计算剩下的人
32
33             if (num<= 3)
34             {
35                 break;
36             }
37             else
38             {
39                 for (int i = 0; i < num; i++)
40                 {
41                     if (i%3+1== 3)
42                     {
43                         a[i] = num1+1;//   把不要的数变大,以便后面排序时在后面。
44                     }
45
46                 }
47                 sort(a, a + num);
48                 num = num -num/3;
49
50             }
51         }
52         for (int i = 0; i < num-1; i++)
53         {
54             cout << a[i] << " ";          //输出最后的三人
55         }
56         cout << a[num - 1] << endl;
57     }
58
59     return 0;
60 }

心得:

感觉良好。。。加油!

时间: 2024-08-26 12:41:24

新兵训练([email protected][email protected]=)的相关文章

[email&#160;protected]@@ @[email&#160;protected] @[email&#160;protected]@ @[email&#160;protected] @@@

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17249    Accepted Submission(s): 4495 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺寸

【error LNK2005: "struct HWND__ * ui_hwnd" ([email&#160;protected]@[email&#160;protected]@A) 已经在 Susake.obj 中定义】

产生原因:多文件包含时,全局变量未用extern 解决方法:直接在全局变量前加上extern即可,若要在在其他文件中使用,该变量声明下就ok了~~ 另外引出一个话题,你是不是也发现了这么一个现象?? 比如 A.h A.cpp #include "A.h" #include "B.h" HWND ui_hwnd, hwnd; int main(int argc, char *argv[]) { ui_hwnd = hwnd; return 0; } B.h B.cpp

[email&#160;protected], [email&#160;protected] 没有实体中的数据

public class AppServerAction extends BaseAction {    /**     *      */ /**      * 初始化 “我的产品”列表 JSP页面,具有分页功能      *       * @param request      * @param model      * @return      */      @Autowired    private StudentService stuservice;        private

Python遇到ModuleNotFoundError: No module named &#39;email.mime&#39;; &#39;email&#39; is not a package问题的处理办法

Python遇到ModuleNotFoundError: No module named 'email.mime'; 'email' is not a package问题的处理办法 一般有以下3个可能: 一是没有导入包 二是当前文件命名和包名冲突 三是和当前文件同一路径下其他文件命名与包名冲突 Python遇到ModuleNotFoundError: No module named 'email.mime'; 'email' is not a package问题的处理办法 原文地址:https:

iOS中四种实例变量的范围类型@[email&#160;protected]@[email&#160;protected]

文档上记录是这样的 The Scope of Instance Variables To enforce the ability of an object to hide its data, the compiler limits the scope of instance variables—that is, limits their visibility within the program. 为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性 But to prov

$*,“$*”,[email&#160;protected],&quot;[email&#160;protected]&quot;的区别

[[email protected] ~]# set -- "I am" handsome boy #传参数[[email protected] ~]# echo $# #打印参数个数3[[email protected] ~]# for i in $;do echo $i;doneIamhandsomeboy[[email protected] ~]# for i in [email protected];do echo $i;doneIamhandsomeboy[[email pr

springMVC @[email&#160;protected]@[email&#160;protected]@Controller的区别和理解

作用: @Component------------------------泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注.(Component-------成分; 组分; 零件) @Resource------------------------(资源) @Autowired-----------------------(自动绑定) @Repository-----------------------于标注数据访问组件,即DAO组件(repository-------仓库; 贮藏

oc 中四种实例变量的范围类型@[email&#160;protected]@[email&#160;protected]

To enforce the ability of an object to hide its data, the compiler limits the scope of instance variables—that is, limits their visibility within the program. 为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性 But to provide flexibility, it also lets you explicit

error LNK2001: unresolved external symbol &quot;public: __thiscall ControllerInterface::ControllerInterface(class QObject *)&quot; ([email&#160;protected]@[email&#160;protected]@@@Z) downloadcontroller.obj

前几天刚遇到这个问题,但是今天再碰到就又要思考怎么解决.这次特别记录一下,以防下次碰到再手足无措: 1.看到这个报错第一感觉LNK关键字,表示连接错误,这种错误有几个可以下手的点 1)函数声明和定义是否有对应实现: 2)moc文件是否存在,是否需要重新生成然后添加: 3)基类的构造函数还是要自定义,尤其要注意参数列表,今天的问题就是参数列表不对引起的: 原文地址:https://www.cnblogs.com/wzxNote/p/8715671.html