算法:差分
模板题: 798. 差分矩阵
#include<iostream>
using namespace std;
const int N = 110;
int g[N][N];
int main()
{
int n;
scanf("%d", &n);
int x1, y1, x2, y2;
while(n--)
{
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
x1++, y1++; //坐标偏移
g[x1][y1]++;
g[x1][y2 + 1]--;
g[x2 + 1][y1]--;
g[x2 + 1][y2 + 1]++;
}
int ans = 0;
for(int i = 1; i <= 105; i++)
{
for(int j = 1; j <= 105; j++)
{
g[i][j] += g[i-1][j] + g[i][j-1] - g[i-1][j-1];
if(g[i][j] > 0) ans++;
}
}
cout << ans << endl;
return 0;
}