求调~~~,二维差分
  • 板块题目总版
  • 楼主ToMaT
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/16 19:56
  • 上次更新2024/7/16 20:53:06
查看原帖
求调~~~,二维差分
1272608
ToMaT楼主2024/7/16 19:56
#include<iostream>
#include<cstdio>
#include<bits/stdc++.h>
using namespace std;
int arr[10000][10000];
void insert(int x1,int y1,int x2,int y2,int c){
	arr[x1][y1]+=c;
	arr[x2+1][y1]-=c;
	arr[x1][y2+1]-=c;
	arr[x2+1][y2+1]+=c;
}
int main(){
	int n,m,q,temp;
	scanf("%d%d%d",&n,&m,&q);
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			scanf("%d",temp);
			insert(i,j,i,j,temp);
		}
	}
	while(q--){
		int x1,x2,y1,y2,c;
		scanf("%d%d%d%d%d",x1,y1,x2,y2,c);
		insert(x1,y1,x2,y2,c);
	}
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			arr[i][j]=arr[i][j-1]+arr[i-1][j]-arr[i-1][j-1];
			printf("%d",arr[i][j]);
		}
		printf("\n");
	}
    return 0;
}
2024/7/16 19:56
加载中...