30分求助
  • 板块P1605 迷宫
  • 楼主_ChongYun_
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/26 23:08
  • 上次更新2023/10/27 05:41:57
查看原帖
30分求助
735763
_ChongYun_楼主2022/10/26 23:08

WA #1 #2 #4 #5 #7 #8 #10

#include<bits/stdc++.h>
using namespace std;
long long ans=0;
long long n,m,t;
long long sx,sy,fx,fy,zx,zy;
long long amap[111][111];
long long dx[4]={0,0,-1,1};
long long dy[4]={-1,1,0,0};
bool vis[111][111];
void dfs(int x,int y){
	if(x==fx&&y==fy){
		ans++;
		return ;
	}
	
	for(int i=1;i<=4;i++){
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&vis[nx][ny]==true){
			vis[nx][ny]=true;
			dfs(nx,ny);
			vis[nx][ny]=false;
		}
	}
	
	return ;
}

int main(){
	memset(amap,0,sizeof(amap));
	cin>>n>>m>>t;
	cin>>sx>>sy>>fx>>fy;
	amap[sx][sy]=1;
	while(t--){
		cin>>zx;
		cin>>zy;
		amap[zx][zy]=1;
	}
	dfs(sx,sy);
	cout<<ans<<endl;
}
2022/10/26 23:08
加载中...