#18370: Python解


310573sao (Jiburiru)

學校 : 新北市立板橋高級中學
編號 : 48055
來源 : [59.127.176.2]
最後登入時間 :
2020-04-01 20:44:03
e285. Power of Cryptography (強化版) -- UVa113加強版 | From: [59.127.176.2] | 發表日期 : 2019-07-07 15:46

題目要求 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

 

 

 

 
#18372: Re:Python解


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [1.168.27.116]
最後登入時間 :
2024-03-31 17:58:15
e285. Power of Cryptography (強化版) -- UVa113加強版 | From: [61.223.51.72] | 發表日期 : 2019-07-07 16:55

 

你好厲害,不過我參考你的方法,怎時間差那麼多。

 

 
#18379: Re:Python解


310573sao (Jiburiru)

學校 : 新北市立板橋高級中學
編號 : 48055
來源 : [59.127.176.2]
最後登入時間 :
2020-04-01 20:44:03
e285. Power of Cryptography (強化版) -- UVa113加強版 | From: [59.127.176.2] | 發表日期 : 2019-07-07 20:10

 

你好厲害,不過我參考你的方法,怎時間差那麼多。

 



既然這樣就代表有些地方寫的不同吧 你怎麼寫的?

 
#18381: Re:Python解


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [1.168.27.116]
最後登入時間 :
2024-03-31 17:58:15
e285. Power of Cryptography (強化版) -- UVa113加強版 | From: [61.223.51.72] | 發表日期 : 2019-07-07 20:59

 

你好厲害,不過我參考你的方法,怎時間差那麼多。

 



既然這樣就代表有些地方寫的不同吧 你怎麼寫的?


我寄給你了 3Q  

 
ZeroJudge Forum