約瑟夫問題 list模擬迴圈鍊錶

2021-09-06 19:30:17 字數 629 閱讀 4329

time limit: 1000ms   memory limit: 65536k  有疑問?點這裡^_^

n個人想玩殘酷的死亡遊戲,遊戲規則例如以下:

n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。

請輸出最後乙個人的編號。

輸入n和m值。

輸出勝利者的編號。

5 3

4
首先說一下寫這個之前我是準備徒手艹鍊錶的,可惜意志力實在不咋滴,再加上手頭上沒課本,之前我有看過c語言版的鍊錶實現,但沒動手敲過,都是偷懶用list水過,list是雙向鍊錶,但約瑟夫這個問題吧,明顯是用迴圈鍊錶來完畢的,問題來了,本渣不會艹鍊錶啊,木辦法僅僅能用list來胡搞了
#include #include #include #include using namespace std;

int main()

} if(j!=node.end())

node.erase(j++);

else //同上 }

cout

}

迴圈鍊錶模擬約瑟夫(josephu)問題

約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。class boypublic intgetno pub...

迴圈鍊錶模擬約瑟夫環

問題引入 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報...

迴圈鍊錶 約瑟夫問題

設編號分別為 1,2,n的n個人圍坐一圈。約定序號為k 1 k n 的人從1開始計數,數到m的那個人出列,他的下一位又從1開始計數,數到m的那個人又出列,依次類推,直到所有人出列為止。演算法思路 1 先建立乙個有n個結點的單迴圈鍊錶,編號從1到n,代表n個人。2 找到第k個結點,即第乙個開始報數的人...