ACM 約瑟夫環

2021-10-04 22:57:40 字數 844 閱讀 3890

經典約瑟夫環:

有 [公式] 個人圍成乙個圈,每 [公式] 個人踢掉乙個人,問最後留下來的人是幾號?
1、採用遞推公式求解 o(n):

2、採用數學思維 o(log(n))

先把我們數的數字想成線性結構:

1 2 * 3 … . . … .

我們第k次被踢出去的人的編號就是kq(就是被他叫道的數字),那麼他被踢出去後的下乙個接著被叫到的數字的編號就是k(q-1)+1;

接下來沒被踢的編號就變成了了k(q-1)+1,k(q-1)+2,k(q-1)+3…

那kq+d的下一次編號就是k(q-1)+d;

那麼最後乙個被踢出去的就是nq;

令n=k(q-1)+d ------> d=n-k(q-1)

參考這篇知乎

3、hdu 3089

#include

#define ll long long

#define endl '\n'

using namespace std;

const

int n=

1e5+5;

intmain()

cout<

1-d<

}return0;

}

約瑟夫問題 約瑟夫環

約瑟夫 問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死...

約瑟夫問題 約瑟夫環

約瑟夫問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也...

Josephu 約瑟夫 約瑟夫環 問題

version 2019年08月08日 public class josepfu 建立乙個環形的單向鍊錶 class circlesinglelinkedlist 輔助指標,幫助構建環形鍊錶 boy curboy null for int i 1 i nums i else 遍歷當前的環形鍊錶 pu...