作者password5353 (阿宅)
看板C_and_CPP
標題[問題] 解題卡關
時間Thu May 26 22:12:53 2022
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
在解題目時,有一個 bug 一直 de不出來
想請各位幫我看看哪裡出了問題 謝謝!
我的解題想法:
一開始利用a陣列計算每個數的次數
接下來建立一個 tree 去遞迴儲存點的最大值
然後再用另一個index array去儲存tree中每個點對應的值是a 陣列中的哪個元素
我卡住的地方:
除了呼叫 root 的 index 也就是輸入 1 和1,000,000 會回傳正確數字,輸入其他任何兩個
數字結果都是1
最可能出現問題的應該是 findMax函式 不過自己找了很久還是沒有發現問題在哪
和我的程式碼:
餵入的資料(Input):
1 10
預期的正確結果(Expected Output):
20
錯誤結果(Wrong Output):
1
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://www.codepile.net/pile/VvOAOdgA
補充說明(Supplement):
題目網址
https://zerojudge.tw/ShowProblem?problemid=d712
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.114.88 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1653574376.A.54C.html
→ firejox: 為什麼你的 findMax 有些沒 return05/27 15:22
謝謝f大 我後來發現自己沒有return 加上調整陣列初值問題就可以正常輸出了!
→ a58524andy: calc跑完a[n]不是3n+1的次數嗎 那他問[i,j]裡面05/27 15:34
→ a58524andy: 誰最大不就a[i]掃到a[j]就好05/27 15:34
回a大 因為這題目的測資有點特殊 所以這樣的話會超時 試了很多遍
→ longlongint: 查詢量有10M char, 查詢範圍10^7,2秒要做完05/28 11:11
→ longlongint: 上網查建議解法是記憶法+偽線段樹05/28 11:15
→ longlongint: 建議轉prob_solve板05/28 11:15
謝謝l 大 之前不知道有這個版! 問題已經順利解決了
※ 編輯: password5353 (101.9.49.56 臺灣), 05/28/2022 14:32:13