poj 1012 Joseph解題報告

2021-05-23 07:02:50 字數 602 閱讀 8964

題目鏈結http://acm.pku.edu.cn/judgeonline/problem?id=1012

這題的大意就是2*k個人圍成乙個圓圈從1開始報數報到到m的殺死,要使得編號為k——2*k-1的k個壞人先被殺死,求滿足題意的最小的m

其中0最初的想法是模擬,完全模擬報號過程

#include

bool flag[30];

int k,start,m,last;

int ans[15];

void setalive()

int getdie()

j=(j+1)%(2*k+1);

if(j==0)

j=1;

}flag[j]=false;

return j;

}int next(int n)

return n;

}int main()

m=k+1;

start=1;

setalive();

while(1)

else

{m=k+1;

rest=2*k;

start=0;

while(1)

{for(i=0;i

Poj 1012 Joseph 約瑟夫環

題意 有k個壞人k個好人坐成一圈,前k個為好人 編號1 k 後k個為壞人 編號k 1 2k 現在有乙個報數m,從編號為1的人開始報數,報到m的人就要自動死去。問當m為什麼值時,可以使得在出現好人死亡之前,k個壞人先全部死掉?思路 約瑟夫環的變形問題,前k個退出的人必定是後k 個人,所以只要前k 輪中...

POJ1012 Joseph 約瑟夫環 水題

poj1012 joseph description 有k個壞人k個好人坐成一圈,前k個為好人 編號1 k 後k個為壞人 編號k 1 2k 現在有乙個報數m,從編號為1的人開始報數,報到m的人就要自動死去 下乙個開始報數的為當前死去的下乙個開始 問當m為什麼值時,可以使得在出現好人死亡之前,k個壞人...

POJ 1012 約瑟夫問題

我是直接模擬的,因為實在想不到什麼好辦法,不過看到0 俗話說得好,不管黑貓白貓,抓到老鼠的就是好貓。於是在自家電腦模擬,打個表,就ac了。至於還有沒有其他方法,有待研究,大家有什麼好方法,請賜教,謝謝!1 模擬 方法是,m從2開始判斷,在1,2,3,2k中,每次找到第m個數,判斷如果是大於k的,那麼...