2011年11月30日 星期三

PKU1001-Exponentiation

題目:http://poj.org/problem?id=1001
給一個實數R,求出R^n確切的值
瞄了一下discuss發現原來這題的實際測試資料與題目設定不符(推測應該是題意不清)
R並不會<99.999,實際上意思R的位數最多"6格",整數的話<=999999,小數會<=9999.9

(如何能知道測試資沒照題目出?
其實只要利用已經AC的code,
稍加修改加入「如果測資超出範圍,隨便輸出或無窮迴圈」這類的code
如果還是AC表示有乖乖照範圍、WA或TLE了測資就真的有問題了)


程式碼:http://codepad.org/sYzu9NRL
我很榮幸能夠一次AC這個WA數逼近AC數兩倍的題目(汗)
(當然,也是因為看過discuss的緣故)

一個相當直覺的作法是
把小數點忽略,當成整數D來進行D^n大數乘法
最後輸出的時候再把小數點補回去
只要熟悉大數運算中對連續0的處理相信這題也很快能AC的

(後記:我把高精度運算的分類改到C0-直解了
我想像中會被分到C5-數學的那種高精度,應該是類似"高精度圓周率"這種不直覺的東西)

沒有留言:

張貼留言