我正在嘗試構建一個用於執行RMQ的段樹。不知何故,無論我查詢什麼範圍它將返回我0. 例如,我的數組是[ 1,2,3,4,5,6,7,8,9,10 ]。 RMQ從指數3到5應該給4.但我的代碼保持輸出0 我的代碼: #include<bits/stdc++.h>
using namespace std;
#define ll long long
ll N, st[2*100000], a
我想要建立一個像段樹一樣的段詞典。 我的意思是我想使用序列(11,22)作爲關鍵,如果輸入值像11,它應該使用相同的密鑰。 如何做到這一點。 例如字典是{(11,22):35,(44,45):12}。 我想寫研究員: for i in dictionary:
blad
blad
如何更改詞典功能使其能夠「在」操作使用?
我想知道有效的方式來解決這個問題: 鑑於給予左上角和右下角ñ矩形,請找的周邊N個矩形的聯合。 我只有O(N^2)算法,它的速度太慢,所以請找到更有效的算法。 可以假定座標值是正整數,並且小於100000 編輯: 例如,在這種情況下,周長爲30 爲O(n^2)算法: for x=0 to maxx
for i=0 to N
if lowx[i] = x
for j=
最近我遇到一個問題叫Gravity Tree 我無法自己解決,所以我檢查了editorial。作者的解決方案是在頂點一次dfs並形成一個段樹,其中每個節點包含從頂點到中心的距離。然後他提到了第二個dfs(我不知道這是做什麼,我嘗試打印他的數據結構,但他們完全沒有意義,不知道他究竟想要做什麼)。他寫的語言太難以掌握了。我知道什麼是細分樹,dfs,懶散的傳播。但是我無法圍繞這個解決方案。不知道解決方案
我已經給定的n整數的數組A,並且在X D爲每個查詢我必須找到最大元件在子陣列[Ax , A(x-D),A(x-2D)..] 例如形式Q查詢: A = [1,2,3,4,5,6,17,8]
we have query 7 2
Sub Array [17,5,3,1] Ans=17
我們怎樣才能用的時間複雜度比O(Q*N)因爲沒有索引更新更好的解決這個問題,能不能用一些技術 我不離線解決t認爲