n個人站成一圈,從某個人開始數數,每次數到m的人就被殺掉,然後下乙個人重新開始數,直到最後只剩乙個人。現在有一圈人,k個好人站在一起,k個壞人站在一起。從第乙個好人開始數數。你要確定乙個最小的m,使得在第乙個好人被殺死前,k個壞人先被殺死。
感謝yh大神指出樣例資料的錯誤。
輸入格式:
乙個k,0輸出格式:
乙個m輸入樣例#1:
3輸出樣例#1:
5輸入樣例#2:
4輸出樣例#2:
300屠龍寶刀點選就送
70分環形佇列
#include int k,next[30ataataaaat];bool check(intm)}
intmain()
for(int i=1;i2;++i) next[i]=i+1;next[k*2]=1
; }
return0;
}
ac**
#include intflag,ans,now,k;
bool check(int
remain)
else
return0;
}int
main()
}printf(
"%d\n
",ans-1
);
return0;
}
洛谷P1996 約瑟夫問題
約瑟夫是乙個無聊的人!n個人 n 100 圍成一圈,從第乙個人開始報數,數到m的人出列,再由下乙個人重新從1開始報數,數到m的人再出圈,依次類推,直到所有的人都出圈,請輸出依次出圈人的編號.輸入格式 n m輸出格式 出圈的編號 輸入樣例 1 複製10 3 輸出樣例 1 複製3 6 9 2 7 1 8...
洛谷P1996 約瑟夫問題
約瑟夫是乙個無聊的人!n個人 n 100 圍成一圈,從第乙個人開始報數,數到m的人出列,再由下乙個人重新從1開始報數,數到m的人再出圈,依次類推,直到所有的人都出圈,請輸出依次出圈人的編號.n m出圈的編號 輸入 1 10 3輸出 1 3 6 9 2 7 1 8 5 10 4m,n 100 1 由於...
洛谷 約瑟夫問題(P1996,佇列)
n 個人圍成一圈,從第乙個人開始報數,數到 m 的人出列,再由下乙個人重新從 1 開始報數,數到 m 的人再出圈,依次類推,直到所有的人都出圈,請輸出依次出圈人的編號。輸入格式 輸入兩個整數 n,m。輸出格式 輸出一行 n 個整數,按順序輸出每個出圈人的編號。輸入輸出樣例 輸入10 3 輸出3 6 ...