面积前缀和。。。。。。。。。。。。。。。。
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int ma[1111][1111];
int dp[1111][1111];
int main()
{
int t;
cin>>t;
while(t--)
{
memset(dp,0,sizeof(dp));
memset(ma,0,sizeof(ma));
int x1,y1;
scanf("%d%d",&x1,&y1);
for(int i=0; i<y1; i++)
{
for(int j=0; j<x1; j++)
{
scanf("%d",&ma[i][j]);
if(i==0&&j==0) dp[1][1]=ma[i][j];
else if(i==0) dp[1][j+1]=dp[1][j]+ma[i][j];
else if(j==0) dp[i+1][1]=dp[i][1]+ma[i][j];
}
}
for(int i=2; i<=y1; i++)
{
for(int j=2; j<=x1; j++)
dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+ma[i-1][j-1];
}
int q;
cin>>q;
while(q--)
{
int cs;
scanf("%d",&cs);
int x,y,xx,yy;
int _x,_y;
long long int sum=0;
int i,j;
scanf("%d%d",&x,&y);
xx=x;
yy=y;
_x=x;
_y=y;
for(i=1;i<cs;i++)
{
scanf("%d%d",&x,&y);
if(y==yy)
{
if(x>xx)
{
sum-=dp[y][x]-dp[y][xx];
}
else sum+=dp[y][xx]-dp[y][x];
}
xx=x;
yy=y;
}
if(yy==_y)
{
if(xx<_x)
{
sum-=dp[yy][_x]-dp[yy][xx];
}
else sum+=dp[yy][xx]-dp[yy][_x];
}
cout<<sum<<endl;
}
}
return 0;
}