- Mobile Phone 移动电话
code
- @ 2026-2-8 11:42:50
struct Fen {
vector<vector<int>> t;
int n;
void init(int n) {
this->n = n;
t.assign(n + 1, vector<int>(n + 1, 0));
}
Fen() {}
void change(int x, int y, int val) {
for (int i = x; i <= n; i += i & -i) {
for (int j = y; j <= n; j += j & -j) {
t[i][j] += val;
}
}
}
int sum(int x, int y) {
int res = 0;
for (int i = x; i; i -= i & -i) {
for (int j = y; j; j -= j & -j) {
res += t[i][j];
}
}
return res;
}
int sum(int x, int y, int u, int v) {
return sum(u, v) - sum(u, y - 1) - sum(x - 1, v) + sum(x - 1, y - 1);
}
};
void solve() {
Fen t;
while (1) {
int o;
cin >> o;
if (o == 0) {
int n;
cin >> n;
t.init(n);
} else if (o == 1) {
int x, y, v;
cin >> x >> y >> v;
t.change(x + 1, y + 1, v);
} else if (o == 2) {
int x, y, u, v;
cin >> x >> y >> u >> v;
cout << t.sum(x + 1, y + 1, u + 1, v + 1) << '\n';
} else {
return;
}
}
}
0 条评论
目前还没有评论...
信息
- ID
- 432
- 时间
- ms
- 内存
- MiB
- 难度
- 5
- 标签
- 递交数
- 27
- 已通过
- 9
- 上传者