#include<bits/stdc++.h> usingnamespace std; typedeflonglong ll; constint N = 3e3 + 5, M = 5e5 + 5; int n, m; int a[N][N]; intmain() {
int n, m; cin >> n >> m; while (m --) { int x, y, r; cin >> x >> y >> r; for (int i = max(1, x - r); i <= min(n, x + r); i ++) { int l = r - abs(x - i); a[i][max(y - l, 1)] ++, a[i][min(y + l + 1, n + 1)] --; } } int res = 0; for (int i = 1; i <= n; i ++) for (int j = 1; j <= n; j ++) { a[i][j] += a[i][j - 1]; if (a[i][j] & 1) a[i][j] = 1; else a[i][j] = 0; res += a[i][j]; } cout << res; return0; }
#include<bits/stdc++.h> usingnamespace std; constint N = 6e3 + 10; int f[N][N]; intmain() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; for(int i = 1; i <= m; i ++) { int x, y, r; cin >> x >> y >> r; // 曼哈顿距离转换成切比雪夫距离 int nx = x + y, ny = x - y + 3000; f[max(1, nx - r)][max(1, ny - r)] ^= 1; f[min(6000, nx + r + 1)][max(1, ny-r)] ^= 1; f[max(1, nx-r)][min(6000, ny + r + 1)] ^= 1; f[min(6000, nx + r + 1)][min(6000, ny + r + 1)] ^= 1; } int ans = 0; for(int i = 1; i <= 6000; i ++) for(int j = 1; j <= 6000; j ++) { f[i][j] = f[i-1][j]^f[i-1][j-1]^f[i][j-1]^f[i][j]; //曼哈顿距离转换成切比雪夫距离 int x = (i + j - 3000) / 2, y = (i - j + 3000) / 2; if(f[i][j] && (i&1) == (j&1) && x > 0 && x <= n && y > 0 && y <= n) ans ++; } cout << ans << '\n'; return0; }