二维树状数组模板

发布时间 2023-10-23 23:23:38作者: Richard_H
void update (int x, int y, int v) {
    for (int i(x); i <= k + 1; i += (i & -i)) 
        for (int j(y); j <= M; j += (j & -j)) 
            get_max (tr[i][j], v);
}

int query (int x, int y) {
    int ret(0);
    for (int i(x); i ; i -= (i & -i)) 
        for (int j(y); j ; j -= (j & -j))
            get_max (ret, tr[i][j]);
    return ret;
}