1754 I Hate It
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1754
挺多自己粗心大意的地方,下面都备注了
#include
#include
#include
#include
using namespace std;
typedef struct Node {int l, r;int m;
}node;
int a[200010];
node tr[200010*4];
void pushup(int u) {tr[u].m &#61; max(tr[u << 1].m, tr[u << 1 | 1].m);
}
void build(int u, int l, int r) {node te;te.l &#61; l; te.r &#61; r;tr[u] &#61; te;if (l &#61;&#61; r) {tr[u].m &#61; a[l];}else {int mid &#61; (l &#43; r) >> 1;build(u << 1, l, mid);build(u << 1 | 1, mid &#43; 1, r);pushup(u);}}
void change(int u,int x,int score) {if(tr[u].r&#61;&#61;tr[u].l){tr[u].m &#61; score;return;}int mid &#61; (tr[u].l &#43; tr[u].r)>>1;if(x<&#61;mid){change(u<<1, x, score);}else {change(u<<1|1, x, score);}pushup(u);}
int query(int u,int x, int y) {int temp &#61; 0;if (tr[u].l >&#61; x && tr[u].r <&#61; y) {temp &#61;tr[u].m;}else {int mid &#61; tr[u].r &#43; tr[u].l >> 1;if (x <&#61; mid) temp &#61; max(temp, query(u << 1, x, y));if (y > mid) temp &#61; max(temp, query(u << 1 | 1, x, y));}return temp;
}
int main() {int n, m;while (~scanf("%d %d", &n, &m) ) {