理解 約瑟夫環

2021-06-22 03:07:31 字數 719 閱讀 4593

總結了個小經驗,有時候光靠看是看不出什麼端倪來的,還必須得動下筆,比劃比劃也許就那麼簡單

#include 

#include 

typedef struct node

node;

node *creatlist(int n) 

//建立乙個含

n個人的迴圈鍊錶

p->next=head; 

//構建迴圈鍊錶

return(head);

} void joseph(node *head,int n,int m) 

//n:總人數 

m:出列的數字

} void main()

自己優化的**

#include

#include

typedef struct node

;

int m,n;

node *head;

void creat()

p->next=head;

}

void jose()

}

int main()

}

深入理解約瑟夫環問題

1 什麼是約瑟夫環問題?約瑟夫,是乙個古猶太人,曾經在一次羅馬叛亂中擔任將軍,後來戰敗,他和朋友及另外39個人躲在一口井裡,但還是被發現了。羅馬人表示只要投降就不死,約瑟夫想投降,可是其他人堅決不同意。怎麼辦呢,他想到乙個主意 讓41個人圍成乙個圓圈,從第乙個人開始報數,數到3的那個人被旁邊的人殺死...

JAVA求解約瑟夫環

與前面我們介紹的大多數程式問題一樣,約瑟夫環問題也是來自於乙個故事。這個故事發生在乙個名叫約瑟夫的猶太人身上,據說在羅馬人占領喬塔帕特後,39 個猶太人與約瑟夫及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人 開始報數,每報數到第...

線段樹解約瑟夫環

題幹 這道題如果用迴圈鍊錶模擬,時間複雜度很不友好,o mn 絕對超時。聽大佬們說可以用線段樹來做,用線段樹來查詢下一次要刪除的數,時間複雜度最終為o nlogn 網上看了這個大佬關於線段樹的詳解 最終ac include using namespace std struct node node t...