看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) ZeroJudge online judgement 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): d923. 規律 http://zerojudge.tw/ShowProblem?problemid=d923 大致做法就是把區域切成四大塊,每一塊增加的值都是可以算先好的 所以不必每格都算過,遞迴一直切下去。 但卻發生奇怪的現象... 同份code, C++能過,C不能過 原本我猜是型態傳換的問題 後來全部換成 unsigned long long int 還是一樣C過不了 (大哭 有人可以告訴我為什麼嗎? 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) http://ideone.com/E3WZ7 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.55.3 ※ 編輯: BombCat 來自: 123.205.55.3 (05/14 04:00)
csihcs:http://ideone.com/WPPTq 同份 Code,該網站編譯通過呀(C) 05/14 04:08
EdisonX:c語言的 math.h 和 c++ 的 cmath 提供之函式不盡相同, 05/14 04:08
EdisonX:.. 請忽略推文 .. 問題似乎還不在這.. 05/14 04:11
BombCat:@c大:可是ZJ答案是錯的 @E大:我是都是用math.c 05/14 04:11
EdisonX:TLE.. 真妙.. 05/14 04:26
EdisonX:換種寫法, 把 recursive 拿掉, 另還用不到 ull, 改這二個 05/14 04:27
EdisonX:應可快不少。 05/14 04:27
EdisonX:( long long 似乎還是必要的.. ) 05/14 04:28
BombCat:@E大: 所以問題在遞迴上? 05/14 04:30
EdisonX:不很確定,另外我其實很好奇,math.h裡面之函式有支援log2 ? 05/14 04:34
BombCat:看起來至少gcc有 (我想是自己extendsion的吧 05/14 04:36
BombCat:@E大,c大:謝謝你們的幫忙,我要去睡了 05/14 04:53
loveme00835:你寫的時候記得開 -Wall 然後會發現"並不是所有路徑都 05/14 05:12
loveme00835:有回傳值" 05/14 05:14
loveme00835:沒有 return 又要函式生東西來給你, 結果是未知的, 加 05/14 05:16
loveme00835:上它又是遞迴的條件, TLE/WA 是當然的 05/14 05:18
EdisonX:真妙.. 我還一直在 math.h ceil 這裡面打轉(覺得有捨位誤) 05/14 05:19
loveme00835:我是沒開啦~ 看到 if 沒看到 else 一定有古怪 05/14 08:33
謝謝版上的各位大大的幫忙,我找到錯誤了 用一個簡單的loop計算,去取代 Exp=(unsigned long long int)pow(2,ceill(log2(Len))); 這一行 就可以讓C也可以過了。 不過還是不知道為什麼之前版本會讓C過不了? 真的好奇是什麼原因造成的 要不然哪天寫到一個會爆的C程式還蠻抖的... AC code: http://ideone.com/WnFuw 謝謝c大,E大還有l大 ※ 編輯: BombCat 來自: 123.205.55.3 (05/14 09:49)
EdisonX:我猜的,pow 回傳 double,精度已不能滿足 ull . 05/14 09:52
BombCat:有可能,畢竟浮點數有些數只能近似 05/14 10:00
BombCat:不過C++居然正常,難到他們用的lib不一樣? 05/14 10:01
EdisonX:我所知是不一樣沒錯。不過這例要確信原因,可能要花點時間 05/14 10:04
EdisonX:再推導驗證。 05/14 10:04
BombCat:感謝E大的意見 05/14 10:09
zaqimon:很多語法關鍵字C都沒有 像之前才發現C沒有bool 05/14 13:12
Chikei:C++有overload long double的版本,C的對應是powl不是pow 05/14 13:54
cobrasgo:應該是linking時找的lib不一樣吧 05/14 19:35