题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4866
思路:相邻格子相连接的道路的数目一定相同。所以,对于奇数位置((i+j)&1==1)的点,ans+=x,对于偶数位置((i+j)&1==0)的点,ans-=x。则最后abs(ans)即为最终结果。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int ans=0;
scanf("%d%d",&n,&m);
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
{
int x;
scanf("%d",&x);
if(x==-1) continue;
if((i+j)&1) ans-=x;
else ans+=x;
}
printf("%d\n",abs(ans));
}
return 0;
}