[問題] ACM107 The Cat in the Hat (TLE)

看板C_and_CPP (C/C++)作者 (栗子)時間14年前 (2011/11/08 19:46), 編輯推噓1(108)
留言9則, 6人參與, 最新討論串1/1
開發平台(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)

11/08 22:39, , 1F
算 N 可加快,算出 N 後,應該只剩一些加減乘除,無迴圈
11/08 22:39, 1F

11/08 22:55, , 2F
http://codepad.org/NDWCOMJX 幫你改寫了一下
11/08 22:55, 2F

11/09 08:10, , 3F
感謝樓上,這樣寫也簡單多了! 看樣子是logf的問題吧!
11/09 08:10, 3F

11/09 10:05, , 4F
寫這種東西少用系統內建的好...
11/09 10:05, 4F

11/09 14:12, , 5F
重點不是系統內建logf不好 是浮點數誤差
11/09 14:12, 5F

11/09 14:13, , 6F
這題用pow或是log都很可能會有浮點數誤差
11/09 14:13, 6F

11/09 16:17, , 7F
我有想過誤差的問題,但是錯誤是TLE,就是這點讓我覺得怪
11/09 16:17, 7F

11/09 21:03, , 8F
我剛試著把logf改為pow就AC了。原因應該是計算速度。
11/09 21:03, 8F

11/09 23:02, , 9F
原來logf比pow更複雜阿... 感謝B大幫忙測試
11/09 23:02, 9F
文章代碼(AID): #1EkHQhge (C_and_CPP)
文章代碼(AID): #1EkHQhge (C_and_CPP)