Codevs 1282 約瑟夫問題

2021-07-08 20:17:03 字數 685 閱讀 1476

1282 約瑟夫問題

時間限制: 1 s

空間限制: 128000 kb

題目描述 description

有編號從1到n的n個小朋友在玩一種出圈的遊戲。開始時n個小朋友圍成一圈,編號為i+1的小朋友站在編號為i小朋友左邊。編號為1的小朋友站在編號為n的小朋友左邊。首先編號為1的小朋友開始報數,接著站在左邊的小朋友順序報數,直到數到某個數字m時就出圈。直到只剩下1個小朋友,則遊戲完畢。

現在給定n,m,求n個小朋友的出圈順序。

輸入描述 input description

唯一的一行包含兩個整數n,m。(1<=n,m<=30000)

輸出描述 output description

唯一的一行包含n個整數,每兩個整數中間用空格隔開,第i個整數表示第i個出圈的小朋友的編號。

樣例輸入 sample input

5 3樣例輸出 sample output

3 1 5 2 4

線段樹專題的最後一題,然而我還是不知道什麼是線段樹

#include

using

namespace

std;

int n,m,a[100001],k,i,x,num=-1;

int main()

return

0;}

Codevs 1282 約瑟夫問題

時間限制 1 s 空間限制 128000 kb 題目等級 大師 master 有編號從1到n的n個小朋友在玩一種出圈的遊戲。開始時n個小朋友圍成一圈,編號為i 1的小朋友站在編號為i小朋友左邊。編號為1的小朋友站在編號為n的小朋友左邊。首先編號為1的小朋友開始報數,接著站在左邊的小朋友順序報數,直到...

Codevs 1282 約瑟夫問題 線段樹

codevs 1282 約瑟夫問題 首先,建樹,根節點 l 1,r n,sum n sum 指的是在這個區間內 還剩下的人數。主函式乙個 while 迴圈,一直迴圈到根節點 為 0 也就是所有人都出圈了。另外 根節點的sum tree 1 sum 代表還沒出圈的還有多少人。我們可以將 圓圈看為乙個佇...

wikioi 1282 約瑟夫問題

這道題所用到的資料結構應該是名次樹,名次樹可以由線段樹實現也可以由樹狀陣列實現。而對於類似這道題這樣的乙個只需要刪除和查詢操作的名次樹而言,可以用樹狀陣列實現,因為用樹狀陣列實現無論效率還是 複雜度都較線段樹而言更優,雖然演算法較線段樹而言更加巧妙。首先,這個資料結構需要乙個用於查詢第k名是什麼的函...