【一只蒟蒻的刷题历程】 【HDU-1276】 士兵队列训练问题
发布日期:2021-05-04 19:23:56 浏览次数:8 分类:技术文章

本文共 735 字,大约阅读时间需要 2 分钟。

D - 士兵队列训练问题

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

Input

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

Output

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

Sample Input

22040

Sample Output

1 7 191 19 37

代码:

也是vector的删除

#include 
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;int main() { int n,x,b,p; cin>>n; while(n--) { cin>>x; vector
v; b=2; for(int i=1;i<=x;i++) v.push_back(i); while(v.size()>3) { int len=v.size(); for(int i=len;i>=1;i--) if(i%b==0 && i) v.erase(v.begin()+i-1); b=b==2?3:2; } for(int i=0;i
上一篇:【一只蒟蒻的刷题历程】 【HDU-2094】 产生冠军 (set)
下一篇:【一只蒟蒻的刷题历程】 【HDU 1062】 Text Reverse

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月22日 12时02分35秒