源代码:
#include<bits/stdc++.h>
using namespace std;
int n,m;
int vis[10][10];
int a[10][10];
int sum=0;
void dfs(int num)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(vis[i][j]) continue;
for(int a1=i-1;a1<=i+1;a1++)
{
for(int b1=j-1;b1<=j+1;b1++)
{
vis[a1][b1]++;
}
}
dfs(num+a[i][j]);
for(int a1=i-1;a1<=i+1;a1++)
{
for(int b1=j-1;b1<=j+1;b1++)
{
vis[a1][b1]--;
}
}
}
}
return;
}
int main()
{
int T;
cin>>T;
while(T--)
{
cin>>n>>m;
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
dfs(0);
cout<<sum<<endl;
sum=0;
}
return 0;
}