50pts求助
  • 板块P1605 迷宫
  • 楼主codingluogu
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/5 17:28
  • 上次更新2024/11/5 18:37:57
查看原帖
50pts求助
480497
codingluogu楼主2024/11/5 17:28
#include<bits/stdc++.h>
using namespace std;
const int N=6;
int bex,bey,enx,eny,n,m,t;
int vis[N][N];
int ans;
void dfs(int x,int y){
	if(x==enx&&y==eny){
		ans++;
	}else{			
		if(x>1&&!vis[x-1][y]){
			vis[x-1][y]=1;		
			dfs(x-1,y);
			vis[x-1][y]=0;
		}	
		if(y>1&&!vis[x][y-1]){
			vis[x][y-1]=1;
			dfs(x,y-1);
			vis[x][y-1]=0;
		}
		if(x<n&&!vis[x+1][y]){
			vis[x+1][y]=1;
			dfs(x+1,y);
			vis[x+1][y]=0;
		}
		if(y<m&&!vis[x][y+1]){
			vis[x][y+1]=1;
			dfs(x,y+1);
			vis[x][y+1]=0;
		}	
	}
}
int main(){
	cin>>n>>m>>t;
	for(int i=1;i<=t;i++){
		int g,u;
		cin>>g>>u;	
		vis[g][u]=1;
	}
	
	cin>>bex>>bey;
	vis[bex][bey]=1;	
	cin>>enx>>eny;
	dfs(bex,bey);
	cout<<ans<<endl;
	return 0;
}


2024/11/5 17:28
加载中...