iT邦幫忙

1

找不到競程問題的bug,有人能幫忙嗎

  • 分享至 

  • xImage

各位大大好
這是我目前卡住的問題
https://zoj.pintia.cn/problem-sets/91827364500/problems/91827365611
這是一題經典的區間詢問第k大元素包含單點修改的操作,我使用了BIT+Treap的樹套樹解法,Treap我是使用指標的寫法,每個bit儲存的是Treap的根結點,寫完的結果是WA。

不好意思直接丟200行code上來,所以只想詢問有沒有甚麼沒考慮到的點,如果願意看code協助debug的話之後再補,感謝願意幫助的各位。

目前只有想到這些點需要考慮:
1.初始化bit為nullptr,以及insert元素到treap時,左右節點需設為nullptr,避免節點亂連的情況
2.刪除元素操作,若該元素有好幾個,只需要刪除一個

這是我冗長的程式碼(小心傷眼):
https://github.com/say859462/CPP-codebook/blob/main/h.cpp

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-08-12 09:22:36

因為我懶惰也看不懂你的程式碼
Google這篇供參考
看看跟你寫的有什麼不一樣

你已經寫出一個版本
應該很容易就看出差異點並解決問題

0
淺水員
iT邦大師 6 級 ‧ 2022-08-18 13:25:08

還沒全部看,但 Treap::Treap() 應該要指定 sz = 1
不然 insert 時 sz 會錯誤

我要發表回答

立即登入回答