題目要求 kn=p
⇒ n log(k) = log(p) (取log10)
n ≤ 105 , log(p) <= 106
log(k) = log(p) / 2 ,二分範圍 (0, 10)
因為k不超過 1010 所以小數點計算至後10為即可
二分次數差不多log2(10) * 10 就可以了
但因為python處理高精度需要Decimal才行(而且好像有優化)
最後求出log(k) ans = 10log(k) , 然而使用pow(10, log(k) ) 會TLE, Decimal也沒有power函數
10log(k)=exp(log(k) * ln(10)), Decimal 有exp 有 ln 估計是有優化(泰勒展開)
我是開精確到20, getcontext().prec = 20
你好厲害,不過我參考你的方法,怎時間差那麼多。
你好厲害,不過我參考你的方法,怎時間差那麼多。
既然這樣就代表有些地方寫的不同吧 你怎麼寫的?
你好厲害,不過我參考你的方法,怎時間差那麼多。
既然這樣就代表有些地方寫的不同吧 你怎麼寫的?
我寄給你了 3Q