都說這題是二維線段樹裸題,不過我二維線段樹有點麻煩 也不太想寫(還是得學的) 我就直接開200棵線段樹了 這種方法在某一維很小的時候 是完全適用的 複雜度最多 100*1000*log(1000) 完全不虛
#include#include#includeusing namespace std;
const int n = 202;
int tree[n][1050<<2],n;
void pushup(int o,int id)
void build(int id,int l,int r)
void update(int o,int id,int l,int r,int pos,int val)
int mid = l+r>>1;
if(pos<=mid) update(o,id<<1,l,mid,pos,val);
else
pushup(o,id);
}int query(int o,int id,int l,int r,int l,int r)
int main()else
}} }
return 0;
}
二維線段樹 HDU 1823
很裸的一道二維線段樹,第一次做,其實二維的線段樹也就是樹套樹,先一維再第二維,第 一 二維的操作都很類似。說回hdu這道題,有點水,提交的時候記得交c g 會wa死你!define n 210 struct node struct node1t n 4 void build sub int id,i...
hdu1823(二維線段樹模板題)
單點更新,求二維區間最值。二維線段樹模板題。二維線段樹實際上就是樹套樹,即每個結點都要再建一顆線段樹,維護對應的資訊。一般一維線段樹是切割某一可變區間直到滿足所要查詢區間,求最值 求和等,二維就是先切割第一維的區間,再去切割第二維的區間。includeusing namespace std defi...
HDU 4819 二維線段樹
13年長春現場賽的g題,赤裸裸的二維線段樹,單點更新,區間查詢 不過我是第一次寫二維的,一開始寫t了,原因是我沒有好好利用行段,說白一點,還是相當於枚舉行,然後對列進行線段樹,那要你寫二維線段樹幹嘛 二維就是在每個行段也建一棵樹,來代表這個區間的行裡的某些列的值 其他操作倒是不難,因為有一維的功底,...