約瑟夫問題 小孩報數問題poj3750

2022-09-08 06:51:17 字數 1246 閱讀 2194

小孩報數問題

time limit:1000ms

memory limit:65536k

total submissions:15228

accepted:6778

description

有n個小孩圍成一圈,給他們從1開始依次編號,現指定從第w個開始報數,報到第s個時,該小孩出列,然後從下乙個小孩開始報數,仍是報到s個出列,如此重複下去,直到所有的小孩都出列(總人數不足s個時將迴圈報數),求小孩出列的順序。

input

第一行輸入小孩的人數n(n<=64) 

接下來每行輸入乙個小孩的名字(人名不超過15個字元) 

最後一行輸入w,s (w < n),用逗號","間隔

output

按人名輸出小孩按順序出列的順序,每行輸出乙個人名

sample input

5

xiaoming

xiaohua

xiaowang

zhangsan

lisi

2,3

sample output

zhangsan

xiaohua

xiaoming

xiaowang

lisi

約瑟夫問題是個有名的問題:n個人圍成一圈,從第乙個開始報數,第m個將被殺掉,最後剩下乙個,其餘人都將被殺掉。例如n=6,m=5,被殺掉的順序是:5,4,6,2,3,1。

此題也是約瑟夫問題,此題有多種解法,可用鍊錶,陣列,還有vector等等,以下**vector所寫

1 #include2 #include3 #include

4 #include5

using

namespace

std;

6 vectorstr;

7intn;8

intw,s;

9int

bg,en;

10int

main()

18 scanf("

%d",&w);

19 w--;        //由於vector陣列從0開始,所以此時w要減一

20getchar();

21 scanf("

%d",&s);

22while(!str.empty())

28 }

POJ 3750 小孩報數問題 (約瑟夫環)

題意 給出n個小孩姓名,從w個開始數,數到第s個出列,輸出出列順序。題解 約瑟夫環 沒有用鍊錶做,太麻煩,這裡用的cir circi r 陣列,記錄是否出列。define crt secure no warnings include include include include include i...

約瑟夫環 poj 3750 小孩報數問題 模擬

language default 小孩報數問題 time limit 1000ms memory limit 65536k total submissions 10071 accepted 4702 description 有n個小孩圍成一圈,給他們從1開始依次編號,現指定從第w個開始報數,報到第s...

小孩報數問題 poj 3750

description 有n個小孩圍成一圈,給他們從1開始依次編號,現指定從第w個開始報數,報到第s個時,該小孩出列,然後從下乙個小孩開始報數,仍是報到s個出列,如此重複下去,直到所有的小孩都出列 總人數不足s個時將迴圈報數 求小孩出列的順序。input 第一行輸入小孩的人數n n 64 接下來每行...