#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 1e5 + 5;
int a[maxn];
int main(){
int n,m,k,L,R,P;
cin>>n>>m>>k;
while(m--){
cin>>L>>R;
a[L]++;
a[R+1]--;
}
for(int i=1;i<=n;i++){
a[i] += a[i-1];
}
for(int i=1;i<=n;i++){
a[i] += a[i-1];
}
while(k--){
cin>>L>>R;
cout<<a[R] - a[L-1]<<endl;
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 2005;
ll a[maxn][maxn];
int main(){
int n,m,k,q,x1,x2,y1,y2;
scanf("%d%d%d%d",&n,&m,&k,&q);
while(k--){
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
a[x1][y1]++;
a[x2+1][y2+1]++;
a[x1][y2+1]--;
a[x2+1][y1]--;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j] = a[i-1][j] + a[i][j-1] - a[i-1][j-1] + a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j] = a[i-1][j] + a[i][j-1] - a[i-1][j-1] + a[i][j];
}
}
while(q--){
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
printf("%lld\n",a[x2][y2] - a[x2][y1-1] - a[x1-1][y2] + a[x1-1][y1-1]);
}
return 0;
}
原文:https://www.cnblogs.com/QFNU-ACM/p/12730734.html