P3397 地毯
差分本质-> 区间加减 中 各个元素值的变化 O(n)即可·全部实现操作
#include<cstdio> int f[1010][1010]={0},sum[1010][1010]; int main() { int n,m,x1,y1,x2,y2; scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) { scanf("%d%d%d%d",&x1,&y1,&x2,&y2); for (int j=x1;j<=x2;j++) { f[j][y1]+=1;f[j][y2+1]-=1; } } for (int i=1;i<=n;i++) { int exsum=0; for (int j=1;j<=n;j++) { exsum+=f[i][j]; sum[i][j]=exsum; } } for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) printf("%d ",sum[i][j]); printf("\n"); } return 0; }

浙公网安备 33010602011771号