大佬救命~dfs30分~
  • 板块P1605 迷宫
  • 楼主zheng61
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/2/21 19:05
  • 上次更新2023/10/28 07:59:35
查看原帖
大佬救命~dfs30分~
415731
zheng61楼主2022/2/21 19:05
#include<iostream>
using namespace std;

char z[1000][1000];
bool ma[1000][1000]={0};
long s=0,ans=0,sx,sy,fx,fy,m,n,t,tx[1000],ty[1000];
int bx[5]={0,-1,1,0,0},by[5]={0,0,0,-1,1};
void dfs(int i,int j){
	for(int k=1;k<=t;k++)if(i==tx[k]&&j==ty[k])return;
	if(ma[i][j])return;
	if(i==fx&&j==fy){
		ans++;
		return;
	}
	ma[i][j]=1;
	for(int k=1;k<=4;k++){
		if(i+bx[k]<0||i+bx[k]>m||j+by[k]<0||j+by[k]>n)continue;
		dfs(i+bx[k],j+by[k]);
	}
	ma[i][j]=0;
	return;
}
int main(){
	cin>>m>>n>>t;
	cin>>sx>>sy>>fx>>fy;
	for(int k=1;k<=t;k++)cin>>tx[k]>>ty[k];  
	dfs(sx,sy);
	cout<<ans<<endl;
	return 0;
}```
2022/2/21 19:05
加载中...