HDU1276 士兵佇列訓練問題

2021-10-09 20:56:16 字數 1089 閱讀 9574

這題本來用的結構體和鍊錶,但是好麻煩,而且還出錯了,網上查資料發現list可以很方便的使用,於是改用list.

list的基礎用法在另一篇部落格記錄。

本題上去題意就理解錯了…(-_- 深度懷疑自己的語文閱讀理解水平)

題意就是第一次挑出2的倍數刪除,第二次挑出3的倍數刪除,第三次2倍數…直到還剩不超過三人。

還有!又是輸出空格問題…編號之間有空格,最後乙個編號之間換行不能有空格…

description

某部隊進行新兵佇列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下:從頭開始一至二報數,凡報到二的出列,剩下的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。。。,以後從頭開始輪流進行一至二報數、一至三報數直到剩下的人數不超過三人為止。

input

本題有多個測試資料組,第一行為組數n,接著為n行新兵人數,新兵人數不超過5000。

output

共有n行,分別對應輸入的新兵人數,每行輸出剩下的新兵最初的編號,編號之間有乙個空格。

sample input220

40sample output

1 7 19

1 19 37

#include

#include

using

namespace std;

intmain()

while

(s.size()

>3)

else}if

(s.size()

>3)

else}}

}for

(it=s.

begin()

;it!=s.

end(

);it++

) cout<}}

HDU1276 士兵佇列訓練問題

problem description 某部隊進行新兵佇列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下 從頭開始一至二報數,凡報到二的出列,剩下的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。以後從頭開始輪流進行...

HDU 1276 士兵佇列訓練問題

problem description 某部隊進行新兵佇列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下 從頭開始一至二報數,凡報到二的出列,剩下的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。以後從頭開始輪流進行...

HDU1276 士兵佇列訓練問題

hdu 1276 某部隊進行新兵佇列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下 從頭開始一至二報數,凡報到二的出列,剩下的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。以後從頭開始輪流進行一至二報數 一至三報數...