我是直接模擬的,因為實在想不到什麼好辦法,不過看到0
俗話說得好,不管黑貓白貓,抓到老鼠的就是好貓。
於是在自家電腦模擬,打個表,就ac了。
至於還有沒有其他方法,有待研究,大家有什麼好方法,請賜教,謝謝!
1、模擬:
方法是,m從2開始判斷,在1,2,3,······,2k中,每次找到第m個數,判斷如果是大於k的,
那麼後面的數就向前移,否則m++,直至找到這樣的m,使得找出的k個數都是大於k,
這個m就是要找的最小的m。(也可以使用鍊錶,不過本人還沒學過鍊錶,所以不在這介紹了,
#includeint main()
for (j=n;j
2、絕對0s演算法:
#includeint main()
; scanf("%d",&k);
while(k)
return 0;
}
題目來自: POJ 1012 約瑟夫問題
功能function description 約瑟夫環 列舉 poj 1012 開發環境environment dev c 4.9.9.1 技術特點technique 版本version 作者author 可笑痴狂 日期date 20120731 備註notes 大致題意 有k個壞人k個好人坐成一圈...
poj 1012 約瑟夫置換
一開始用的不是約瑟夫置換 關鍵是要儲存之前求出的值。因為只有13個數,所以也可以另開程式手動求出所有k值塞進陣列,這樣每次查詢都是o 1 0ms了 首先m值必須在 k 1 2kn,2k n 1 n 0,1,2 之間,然後 列舉。include include include include incl...
POJ 1012 約瑟夫環
poj的約瑟夫環問題是原本約瑟夫環的一種變形。約瑟夫環 有n個人,從第乙個人開始報數,數到第m個人就退出,依次迴圈,最後剩下的人為勝利者。可以用迴圈鍊錶和陣列的方法做,當m,n比較小時可以一試 迴圈鍊錶,數到就刪除,數到只剩乙個就輸出 陣列,第0個位置數值置為n,其他照常 a 1 1,a 2 2.數...