70pts!
  • 板块P1605 迷宫
  • 楼主lxc129
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/20 19:20
  • 上次更新2024/5/20 19:23:27
查看原帖
70pts!
1126733
lxc129楼主2024/5/20 19:20
#include<bits/stdc++.h>
using namespace std;
int n,m,t,sx,sy,fx,fy,u,v,ans,dx[]={0,0,-1,1},dy[]={1,-1,0,0};
bool vis[7][7],mp[7][7];
void dfs(int x,int y){
	if (x==fx && y==fy){
		ans++;
		return;
	}
	for (int i=0;i<4;i++){
		int nx=x+dx[i],ny=y+dy[i];
		if (nx<=0 || nx>n || ny<=0 || ny>m) continue;
		if (!vis[nx][ny] && mp[nx][ny]==0){
			vis[nx][ny]=1;
			dfs(nx,ny);
			vis[nx][ny]=0;
		}
	}
}
int main(){
	cin>>n>>m>>t>>sx>>sy>>fx>>fy;
	while (t--){
		cin>>u>>v;
		mp[u][v]=1; 
	}
	dfs(sx,sy);
	cout<<ans;
}
2024/5/20 19:20
加载中...