40pts求助!
  • 板块P1605 迷宫
  • 楼主Yuley
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/9/17 11:35
  • 上次更新2024/9/17 15:27:01
查看原帖
40pts求助!
1449772
Yuley楼主2024/9/17 11:35

求大佬解答,是不是细节错误? 我用的是深搜

#include<iostream>
using namespace std;
int n,m,t;
int x1,y1,x2,y2;
int ma[10][10];
int vis[10][10];
int sum=0;
int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};
bool dfs(int x,int y){
	if(x==x2&&y==y2){
		sum+=1;
		return true;
	}
	vis[x][y]=1;
	for(int i=0;i<4;i++){
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(nx>=0&&nx<n&&ny>=0&&ny<m&&vis[nx][ny]==0){
			if(dfs(nx,ny))return true;
		}
	}
	vis[x][y]=0;
	return false;
}
int main(){
	int xxx,yyy;
	cin>>n>>m>>t;
	cin>>x1>>y1>>x2>>y2;
	x1--;y1--;x2--;y2--;
	for(int i=0;i<t;i++){
		cin>>xxx>>yyy;
		vis[xxx--][yyy--]=1;
	}
	dfs(x1,y1);
	cout<<sum;
	return 0;
} 
2024/9/17 11:35
加载中...