看板 ACMCLUB 關於我們 聯絡資訊
※ 引述《Kuster (克斯特)》之銘言: : : csod(100) : : times| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|14|16|20|25|33|50| : : --------------------------------------------------------- : : range|50|33|25|20|16|14|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| : : 表格說明 : : range 100-51 contribute nothing : : 50-34 contribute 2-1 times : : 33-26 contribite 3-1 times : : ................ : : 值得注意的是在 sqrt(100)(也就是10)的左右兩端是點對稱 : 觀察這個表格 : 似乎兩頭同時進行會比較好 : 但是說到程式,我怎麼寫都還是會遇到問題,解出來的答案都太大 : 但是單方向的從頭往後算又太慢 : 能否請您說說看您的程式大概是怎麼寫的呢? 我沒有實際去寫過 不過如果要我寫的話,我會寫兩個loop 如果要算csod(k),那麼第一個loop算出這個表的2~sqrt(k)[看上面]部份 並存取下來 接著第二個loop讀取第一個loop的結果再從sqrt(k)~2[看下面]算一遍 算csod(k)的整個複雜度是 2*sqrt(k),應該不算大 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.7.59