二维树状数组模板
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;
}

浙公网安备 33010602011771号