社区讨论
悬小号 1 关求调
P3801红色的幻想乡参与者 2已保存回复 12
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 12 条
- 当前快照
- 1 份
- 快照标识符
- @mhj3kqmh
- 此快照首次捕获于
- 2025/11/03 20:09 4 个月前
- 此快照最后确认于
- 2025/11/03 20:44 4 个月前
0pts code
CPP#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 5;
int n, m, q;
int tr[2][N];
bool vis[2][N];
void add(int id, int pos){
while (pos <= (id == 0 ? n : m)){
tr[id][pos] += (vis[id][pos] ? -1 : 1);
pos += pos & (-pos);
}
vis[id][pos] = !vis[id][pos];
}
int sum(int id, int pos){
int res = 0;
while (pos){
res += tr[id][pos];
pos -= pos & (-pos);
}
return res;
}
signed main(){
cin >> n >> m >> q;
while (q -- ){
int op; cin >> op;
if (op == 1){
int x, y; cin >> x >> y;
add(0, x), add(1, y);
}
else{
int x1, x2, y1, y2; cin >> x1 >> y1 >> x2 >> y2;
int _a = sum(0, x2) - sum(0, x1 - 1);
int _b = sum(1, y2) - sum(1, y1 - 1);
cout << _a * (y2 - y1 + 1) + _b * (x2 - x1 + 1) - 2 * _a * _b << "\n";
}
}
}
回复
共 12 条回复,欢迎继续交流。
正在加载回复...