30 pts求调
  • 板块P1605 迷宫
  • 楼主z__j__y
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/20 16:18
  • 上次更新2024/3/20 18:45:10
查看原帖
30 pts求调
1076932
z__j__y楼主2024/3/20 16:18
#include <iostream>
using namespace std;
int n,m,t,fx,fy,sx,sy,ans;
bool mig[50][50];
int di[4][2]={
	{-1,0},
	{0,-1},
	{0,1},
	{1,0}
};
void dfs(int x,int y);
signed main(){
	scanf("%d %d %d",&n,&m,&t);
	scanf("%d %d %d %d",&sx,&sy,&fx,&fy);
	sx--,sy--,fx--,fy--;
	while(t--){
		int x,y;
		scanf("%d %d",&x,&y);
		mig[x][y]=1;
	}
	dfs(sx,sy);
	cout << ans;
} 
void dfs(int x,int y){
	if(x==fx&&y==fy){
		ans++;
		return;
	}else{
		for(int i=0;i<4;i++){
			int nx=x+di[i][0];
			int ny=y+di[i][1];
			if(nx<0||ny<0||nx>=n||ny>=m)continue;
			if(!mig[nx][ny])continue;
			mig[nx][ny]=1;
			dfs(nx,ny);
			mig[nx][ny]=0;
		}
	}
	
}
2024/3/20 16:18
加载中...