线段树(HDU 1754 I Hate It)
第一次写线段树,参考了一下别人的线段树代码 #define L(x) (x << 1) #define R(x) ((x << 1) | 1) code: #include <stdio.h> #define max(x,y) x>y?x:y const int MAX = 200005 ; struct Tree{ int left; int right; int data; }tr[MAX* 3 ]; int n,m,s[MAX],a,b; char cmd; void build( int l, int r, int pos){ tr[pos].left = l; tr[pos].right = r; if (l == r){ tr[pos].data = s[l]; return ; } int mid = (l + r) >> 1 ; build(l,mid,(pos<< 1 )); build(mid+ 1 ,r,(pos<< 1 )+ 1 ); tr[pos].data = max(tr[pos<< 1 ].data,tr[(pos<< 1 )+ 1 ].data); } void Update( int l, int r, int pos){ if (l == r){ tr[pos].data = b; return ; } int mid = (l + r) >>