求大佬看看为什么样例2为什么过不了,但是100分
查看原帖
求大佬看看为什么样例2为什么过不了,但是100分
832977
Submerge69楼主2024/3/5 19:02
#include<bits/stdc++.h>
using namespace std;
int n,m,sum,ans=900;
int mapp[15][15];
int invilude[15][15];
void dfs(int x,int y,int now,int k) {
	if(x<1||y<1||x>n||y>m) return ;
	if(k>ans) return ;
	if(now>sum/2) return ;
	if(sum-now==now) {
		ans=min(ans,k);
		return ;
	}
	if(invilude[x][y]==1) return ;
	cout<<x<<" "<<y<<endl;
	invilude[x][y]=1;
	dfs(x+1,y,now+mapp[x+1][y],k+1);
	dfs(x-1,y,now+mapp[x-1][y],k+1);
	dfs(x,y+1,now+mapp[x][y+1],k+1);
	dfs(x,y-1,now+mapp[x][y-1],k+1);
	invilude[x][y]=0;
	return ;
}

int main() {
	cin>>m>>n;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=m; j++) {
			cin>>mapp[i][j];
			sum+=mapp[i][j];
		}
	}
	dfs(1,1,mapp[1][1],1);
	if(ans==900) {
		cout<<"0";
		return 0;
	}
	cout<<ans;
	return 0;
}
2024/3/5 19:02
加载中...