總結了個小經驗,有時候光靠看是看不出什麼端倪來的,還必須得動下筆,比劃比劃也許就那麼簡單
#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...