求助大佬,为什么输出是0
查看原帖
求助大佬,为什么输出是0
839898
syxnb6楼主2023/4/1 19:52
#include<bits/stdc++.h>
using namespace std;
int n,m,a[11][11];
int b[11][11],jg;
int sum=0,ans=1,s;
int c[4][2]={1,0,-1,0,0,1,0,-1};
void dfs(int x,int y)
{
	if(sum==s)
	{
		jg=ans;
		return ;
	}
	if(s>sum)
	return ;
	for(int i=0;i<4;i++)
	{
		int xx=xx+c[i][0];
		int yy=yy+c[i][1];
		if(xx<1||xx>n||yy<1||yy>m||b[xx][yy])
		continue;
		s+=a[xx][yy];
		ans++;
		b[xx][yy]=1;
		dfs(x+xx,y+yy);
		s=0;
		ans=0;
		b[xx][yy]=0;
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
	{
		cin>>a[i][j];
		sum+=a[i][j];
	}
	if(sum%2==0){
		cout<<"0";
		return 0;
	}
	sum/=2;	
	s=b[1][1];
	b[1][1]=1;
	dfs(1,1);
	cout<<jg;
	return 0;
}
2023/4/1 19:52
加载中...