Q
線段樹:懶傳播
1
A
回答
1
我會在每個節點上保留32個整數,告訴我在子節點的二進制表示的每個位置有多少個整數。
對XOR節段節點,只是將每個位置(X中的每個位1)中有多少個節點進行反轉。
for i in range(32):
if X&(1<<i):
N[i] = (R-L+1)-N[i].
要計算總和,
s = 0
for i in range(32):
s |= ((N[i]+carry)%2) << i
carry = (N[i]+carry)/2
+0
我不明白這條線...... N [i] =(R-L + 1)-N [i]。爲什麼我會減去N [i]? – palatok
+0
反轉段中1的個數。假設我們有一個從3到7的分段和2個分段。這意味着用1比特來反轉這個數字,即所有的數字變成零,並且所有的零成爲一。 7-3 + 1-2 = 5 -2 = 3 –
1
你的答案是不正確的。你需要像這樣做一些懶惰的更新:http://p--np.blogspot.ro/2011/07/segment-tree.html。否則,如果你更新(1,n,x)和查詢(4,5),你將得到一個錯誤的答案,因爲更新只改變了根節點。
相關問題
- 1. 段樹懶傳播
- 2. 分段樹中的懶惰傳播?
- 3. 分段樹的惰性傳播
- 4. 數據映射和懶惰傳播
- 5. 具有惰性傳播的分段樹時間限制問題
- 6. 線段樹空間需求
- 7. 懶線畫家
- 8. Flex 4樹懶加載
- 9. STA線程異常傳播
- 10. JPA樹價值傳播/合併
- 11. tree構造:傳播子樹子
- 12. _ReadWriteBarrier如何傳播呼叫樹?
- 13. 如何在Python中傳播樹節點
- 14. 問題在執行線段樹
- 15. 線段樹查詢爲最大數
- 16. 懶惰的樹與空間泄漏
- 17. 傳遞懶功能參數
- 18. 向C++ 11線程傳播信號(SIGINT)
- 19. AWS路線53子域不傳播
- 20. Java - 從後臺線程傳播錯誤
- 21. 跨線程的異常傳播?
- 22. 什麼階段停止傳播效果?
- 23. XML和樹,線路出樹
- 24. 如何阻止jQuery樹項目中的Ajax.ActionLink傳播點擊樹項目
- 25. 段樹實現
- 26. 角度數據傳播通過範圍樹與控制器
- 27. 在java中如何從樹狀結構中傳播文件
- 28. 表達式樹lambda可能不包含空傳播運算符
- 29. WPF:向視覺樹傳播驗證錯誤
- 30. 線程安全懶get和釋放
我會添加一條線索:XOR是關聯的。 (A XOR X)XOR Y)與A XOR(X XOR Y)具有相同的結果。 –
@Patricia Shanahan,謝謝,但我知道。我的問題是要找出段的總和。 – palatok
您的問題是要查找也受到段上異或的數據段總和。如果您只有手術2,您將如何解決問題? –