洛谷P3397 地毯(差分)
作者:互联网
二维平面上的差分,我们可以对每行处理。
比如我们要把(2,2)(5,5)之间的矩形加上1,可以这样处理。
0 0 0 0 0 0 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 0 0 0 0 0
那么这道题就简单了。
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,a[1001][1001],c[1001][1001]; 4 5 int main(){ 6 scanf("%d%d",&n,&m); 7 while(m--){ 8 int x1,x2,y1,y2; 9 scanf("%d%d%d%d",&x1,&y1,&x2,&y2); 10 for(int i=x1;i<=x2;i++){ 11 c[i][y1]+=1; 12 c[i][y2+1]-=1; 13 } 14 } 15 for(int i=1;i<=n;i++) 16 for(int j=1;j<=n;j++) 17 a[i][j]=a[i][j-1]+c[i][j]; 18 for(int i=1;i<=n;i++){ 19 for(int j=1;j<=n;j++){ 20 cout<<a[i][j]<<" "; 21 } 22 cout<<endl; 23 } 24 }
标签:y2,洛谷,int,d%,差分,P3397,y1,x1,1001 来源: https://www.cnblogs.com/yhxnoerror/p/16152237.html