一道Joseph環問題

2021-10-17 19:01:20 字數 769 閱讀 4545

在學校寒假搞的演算法天梯中遇到的乙個joseph環的問題,題目如下。

題目的情景是乙個雙向的 joseph 環,n 個人看作 n 個結點,兩個老師分別沿兩個方向移動,把每兩個節點之間用雙向箭頭連線,圖大概長下面這個樣子。

這啟發我們可以構建乙個雙向鍊錶來模擬這個遊戲過程,人出列就等價於節點刪除,老師清點完移動就等價於指標移動到下乙個節點。需要注意的是在每次清點時,如果清點次數(k)大於當前人數(size),那麼 k 需要對 size 取模,因為每清點 size 次都會回到當前這個點,而且 k,m 的都是 int 的範圍,如果不取模很可能會超時。

#include

#include

using

namespace std;

int n,m,k,cnt;

int l[

30010

],r[

30010];

intmain()

int it1=

1,it2=n;

while

(cnt!=n)

else

it2=l[it2]

; cnt+=2

;}}return0;

}

誰是老大 一道類似Joseph環的智力題

這是乙個在面試中被問到的問題,其實細想起來很簡單。但當時只給了兩分鐘,沒能直接給出解決方案。有156個海盜在乙個島上,他們決定選乙個人出來做老大,由於人這麼多,選誰當老大一直沒有選好,於是他們想出來乙個辦法,把這156個人從1到156編號,然後按1,2,1,2,報數,報到1的退出選舉,剩下來的人繼續...

一道概率問題

題目 有一輛汽車有n個座位,編號為1 n,有n個人買票拿號上車,正常人按照自己的座位號對號入座,但是有乙個精神病患者,在空座位中隨機選擇乙個空著的座位就坐,正常人的座位如果被佔,也將隨機選擇乙個空著就坐,假如第乙個上車的是精神病患者,其他人都是正常人,問最後乙個人能坐到自己的座位的概率是多少?對於概...

一道遞迴問題

題目大意是 給定乙個字串a,然後給定多個單詞,然後根據給定的單詞在字串中插入空格,求插入空格最少的組合。例如給定字串ilikeeverything,給定單詞i like every thing likeeverything。輸出為i likeeverything。include include in...