hdu 4391 線段樹 優化

2021-06-08 20:36:22 字數 674 閱讀 2215

2012 多校第十場,這個題目比賽的時候我直接在每個節點裡面開了乙個map,結果毫無疑問mle 了,比賽之後看了結題報告說是 分段雜湊,沒學過,後來聽說線段樹稍微剪枝一下就能過,換了一下思路,確實就能過了,每個節點也不需要記錄每種顏色的個數了,只需要記錄最大的編號和最小的就可以了。。

#include#includeusing namespace std;

#define lson u<<1

#define rson u<<1|1

#define maxn 100005

int a[maxn];

struct nodet[maxn<<2];

void pushup(int u)

void pushdown(int u)

}void build(int u,int l,int r)

int mid=(l+r)>>1;

build(lson,l,mid);

build(rson,mid+1,r);

pushup(u);

}void update(int u,int l,int r,int color)

else

}int query(int u,int l,int r,int color)

}int main()}}

}

hdu 4262 線段樹優化

include include include includeusing namespace std define lson u 1 define rson u 1 1 define maxn 100005 int map maxn struct nodet maxn 2 void pushup i...

HDU 1542 掃瞄線 線段樹優化

有些需要說明的地方 以前寫線段樹時線段樹的每個葉節點為乙個數字,代表乙個區域 7 代表第七個單位長度區域 本題不同在於,最小單位區域必須有兩點代表 2 3 代表從2到3 的乙個區域 上篇掃瞄線演算法複雜度為o n 2 本題用離散化法加線段樹優化為nlog n include include incl...

HDU 5091 掃瞄線 線段樹優化

做法,將讀入的每個點 x,y 看做乙個以該點為左上角寬w高h的矩形,然後將矩形看做兩條平行y軸 起點y h,終點y 線,橫座標分別為 x x w 然後可用經典的掃瞄線演算法求解該題,即找出所有矩形重疊的最多次數,即所求值 證明 都在乙個矩形內的點必定他們的上述規定的矩形都兩兩相交,而矩形兩兩相交必然...