二维树状数组模板

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;
}
posted @ 2023-10-23 23:18  Richard_H  阅读(17)  评论(0)    收藏  举报