作者Biboy (栗子)
看板C_and_CPP
標題[問題] ACM107 The Cat in the Hat (TLE)
時間Tue Nov 8 19:46:47 2011
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Code::Blocks (C++)
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
No
問題(Question):
題目網頁:
http://luckycat.kshs.kh.edu.tw/homework/q107.htm
測試過exampe及板上爬文到的測資都通過
時間也都小於1秒,但丟上去後還是出現TLE
餵入的資料(Input):
216 125
5764801 1679616
64 1
1 0
483736625 481890304
2147483647 2147483646
0 0
預期的正確結果(Expected Output):
31 671
335923 30275911
6 127
1 1
615441 1931252289
1 4294967293
錯誤結果(Wrong Output):
output和UVA toolkit的output一樣,答案應該是沒錯
但是丟到UVA上卻會Time limit exceeded
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/rjoysQd1
補充說明(Supplement):
丟進去的測資有原題目的測資,以及爬文爬到該注意的狀況
目前想不到是哪個部分會造成TLE,我自己執行那些大數時也是小於1s
麻煩前輩們指點一下是哪個部分有瑕疵,或是有沒注意到的special case
謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.111.129.79
※ 編輯: Biboy 來自: 140.111.129.79 (11/08 19:47)
→ meconin:算 N 可加快,算出 N 後,應該只剩一些加減乘除,無迴圈 11/08 22:39
→ Biboy:感謝樓上,這樣寫也簡單多了! 看樣子是logf的問題吧! 11/09 08:10
→ x000032001:寫這種東西少用系統內建的好... 11/09 10:05
推 chchwy:重點不是系統內建logf不好 是浮點數誤差 11/09 14:12
→ chchwy:這題用pow或是log都很可能會有浮點數誤差 11/09 14:13
→ Biboy:我有想過誤差的問題,但是錯誤是TLE,就是這點讓我覺得怪 11/09 16:17
→ bleed1979:我剛試著把logf改為pow就AC了。原因應該是計算速度。 11/09 21:03
→ Biboy:原來logf比pow更複雜阿... 感謝B大幫忙測試 11/09 23:02