20分求调
  • 板块P1605 迷宫
  • 楼主Konosekai
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/29 20:17
  • 上次更新2024/8/29 23:21:25
查看原帖
20分求调
1433392
Konosekai楼主2024/8/29 20:17
#include<iostream>
using namespace std;
int n,m,t,sx,sy,fx,fy,vis[101][101],tr[101][2],ans=0,flag=0;
void dfs(int x,int y);
int main(){
	cin>>n>>m>>t>>sx>>sy>>fx>>fy;
	for(int i=0;i<t;i++)
		cin>>tr[i][0]>>tr[i][1];
	dfs(sx,sy);
	cout<<ans<<endl;
	return 0;
}
void dfs(int x,int y){
	if(x==fx&&y==fy){
		ans++;
		return;
	}
	if(x>=1&&x<=n&&y>=1&&y<=m&&vis[x][y]==0){
		for(int i=0;i<t;i++){
			if(x==tr[i][0]&&y==tr[i][1])
				return;
		}
		vis[x][y]=1;
		dfs(x-1,y-1);
		dfs(x+1,y+1);
		dfs(x-1,y+1);
		dfs(x+1,y-1);
		vis[x][y]=1;
	}
}
2024/8/29 20:17
加载中...