hdu6183 線段樹動態開點

2021-09-24 03:51:28 字數 865 閱讀 1145

在寫題的時候偶然發現的 都是大佬

大概就是 將線段樹接下來的 i<<1 和 i<<1|1改為了用乙個陣列l[i] 和r[i]來儲存感覺很有意思 有一點點像鏈式前向星

題目位址 hdu6183

還乙個大佬寫的 cdq+線段樹

#include #define mod 998244353

using namespace std;

typedef long long ll;

int c, d, x, ok, root[55];

int cnt, l[550005], r[550005], v[550005];

void update(int &k, int l, int r, int a, int b)

if (v[k] > b)

v[k] = b;

if (l == r)

return;

m = (l + r) / 2;

if (a <= m)

update(l[k], l, m, a, b);

else

update(r[k], m + 1, r, a, b);

}void query(int x, int l, int r)

m = (l + r) / 2;

if (c <= m)

query(l[x], l, m);

if (d >= m + 1)

query(r[x], m + 1, r);

}int main()

else if (opt == 1)

else if (opt == 2)

printf("%d\n", ans);}}

}

hdu 6183 線段樹的空間優化

題意 乙個空的座標系,有 種操作 1 x y c表示在 x,y 點染上顏色c 2 x y1 y2表示查詢在 1,y1 到 x,y2 範圍內有多少種不同的顏色 0表示清屏 3表示程式退出 0 x,y 1000000,0 c 50 思路 開五十個線段樹 一種顏色乙個 以y為下表,儲存min x,因為查詢...

HDU6183 Color it 動態開點線段樹

給出以下操作 0 代表清空所有顏色,1 x y c 代表在座標 x,y 塗上第 c 種顏色,2 x y 1 y 2 代表統計 x 軸上 1,x 和y軸上 y 1,y 2 的顏色數,乙個點可以有多種顏色,3 代表結束。資料保證 n,m leq 1e6,0 geq c leq 50,y 1 leq y ...

線段樹動態開點

為了降低權值線段樹的空間複雜度,可以不直接建出整棵線段樹的結構,而是在最初只建立乙個根節點,當需要訪問某棵為建立的子樹的時候,再建立代表這個子樹的節點。動態開點的線段樹用變數記錄左右節點的編號。值域為1 n的動態開點線段樹在m次單點修改後,節點規模為o mlogn 例題 p1908 逆序對 這題n最...