题意:
给一个二维数组,查询(r1,s1),(r2,s2)确定的矩形中所有数的和。
分析:
dp水题,sum[r][s]表示从(0,0)到(r,s)确定的矩形中所有数的和。
代码:
//poj 2215
//sep9
#include <iostream>
using namespace std;
const int maxN=1024;
int sum[maxN][maxN];
int main()
{
int cases;
scanf("%d",&cases);
while(cases--){
int i,j,n,m,q;
scanf("%d%d",&n,&m);
memset(sum,0,sizeof(sum));
for(i=1;i<=n;++i)
for(j=1;j<=m;++j){
int x;
scanf("%d",&x);
sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
sum[i][j]+=x;
}
scanf("%d",&q);
while(q--){
int x1,y1,x2,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
--x1,--y1;
printf("Absolutni hodnota pohodlnosti je %d bodu.\n",sum[x2][y2]-sum[x2][y1]-sum[x1][y2]+sum[x1][y1]);
}
printf("\n");
}
}