70SOS
  • 板块P1605 迷宫
  • 楼主封禁用户
  • 当前回复11
  • 已保存回复11
  • 发布时间2023/7/15 14:30
  • 上次更新2023/11/3 09:43:13
查看原帖
70SOS
937468
封禁用户楼主2023/7/15 14:30
#include <bits/stdc++.h>
using namespace std;
int n,m,s,k;
int xx,yy,xy,yx,xq,yq;
int a[10010][10010];
int fx[5]={0,0,0,1,-1};
int fy[5]={0,1,-1,0,0};
void dfs(int x,int y){
	if(x==xy&&y==yx){
		k++;
		return ;
	}
	for(int i=1;i<=4;i++){
		int tx=x+fx[i],ty=y+fy[i];
		if(a[tx][ty]!=1&&tx>=1&&tx<=n&&ty>=1&&ty<=m){
			a[tx][ty]=1;
			dfs(tx,ty);
			a[tx][ty]=0;
		}
	}
}
int main(){
	cin>>n>>m>>s;
	cin>>xx>>yy>>xy>>yx;
	for(int i=1;i<=s;i++){
		cin>>xq>>yq;
		a[xq][yq]=1;
	}
	dfs(xx,yy);
	cout<<k;
	return 0;
}

2023/7/15 14:30
加载中...