单点修改,区间查询(求和)
单点更新,前缀最值
class TreeArray {
public:
static const int N = ::N;
int val[N];
int lowbit(int x) { return x & -x; }
void upd(int u, int v) { for(int i = u; i < N; i += lowbit(i)) val[i] = max(val[i], v); }
int query(int u) { int res = -inf; for(int i = u; i; i -= lowbit(i)) res = max(res, val[i]); return res; }
} t;
此处评论已关闭