題目鏈結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的,那麼...