D 牛妹吃豆子 二维差分
作者:互联网
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=2e3+1; 5 ll sum[maxn][maxn],cnt[maxn][maxn],ans[maxn][maxn]; 6 char s[maxn][maxn]; 7 int main() 8 { 9 int n,m,k,q,x1,x2,y1,y2; 10 scanf("%d%d%d%d",&n,&m,&k,&q); 11 for(int i=1;i<=k;++i) 12 { 13 scanf("%d %d %d %d",&x1,&y1,&x2,&y2); 14 cnt[x1][y1]++,cnt[x2+1][y1]--,cnt[x1][y2+1]--,cnt[x2+1][y2+1]++; 15 } 16 for(int i=1;i<=n;++i) 17 for(int j=1;j<=m;++j){ 18 sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+cnt[i][j]; 19 } 20 for(int i=1;i<=n;++i) 21 for(int j=1;j<=m;++j) 22 ans[i][j]=ans[i-1][j]+ans[i][j-1]-ans[i-1][j-1]+sum[i][j]; 23 while(q--){ 24 scanf("%d %d %d %d",&x1,&y1,&x2,&y2); 25 printf("%lld\n",ans[x2][y2]-ans[x2][y1-1]-ans[x1-1][y2]+ans[x1-1][y1-1]); 26 } 27 }
标签:豆子,int,牛妹,d%,差分,char,maxn,long,ll 来源: https://www.cnblogs.com/pangbi/p/14438431.html