70分求调
  • 板块P1605 迷宫
  • 楼主pain___
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/7/22 15:51
  • 上次更新2025/7/22 19:50:33
查看原帖
70分求调
1634134
pain___楼主2025/7/22 15:51
#include<bits/stdc++.h>
using namespace std;
bool obs[6][6],vis[6][6];
int di[]={-1,1,0,0};
int dj[]={0,0,-1,1};
int x,y,n,m,t,cnt,sx,sy,fx,fy;
void dfs(int x,int y){
	if(x==fx&&y==fy){
		cnt++;
		return;
	}
	for(int i=0;i<4;i++){
		int tx=x+di[i];
		int ty=y+dj[i];
		if(tx>0&&tx<=n&&ty>0&&ty<=m){
			if(!obs[tx][ty] && !vis[tx][ty]){
				vis[tx][ty]=1;
				dfs(tx,ty);
				vis[tx][ty]=0;
			}
		}
	}
	return;
}
int main(){
    cin>>n>>m>>t;
    cin>>sx>>sy>>fx>>fy;
    for(int i=1;i<=t;i++){
    	cin>>x>>y;
    	obs[x][y]=1;
	}
	dfs(sx,sy);
	cout<<cnt;
    return 0;
}

2025/7/22 15:51
加载中...