70分求助
  • 板块P1605 迷宫
  • 楼主QAQ_liu
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/6 15:14
  • 上次更新2024/8/6 16:04:13
查看原帖
70分求助
1032871
QAQ_liu楼主2024/8/6 15:14
#include<bits/stdc++.h>
using namespace std;
long long n,m,sum,t,vis[1005][1005],a[10005],b[10005],s1,s2,s3,s4,d[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
void dfs(long long x,long long y){
	long long nx,ny;
	if(x==s3&&y==s4) sum++;
	for(int i=0;i<4;i++){
		nx=x+d[i][0];
		ny=y+d[i][1];
		if(nx<1||nx>n||ny<1||ny>m) continue;
		if(vis[nx][ny]==1) continue;
		vis[nx][ny]=1;
		dfs(nx,ny);
		vis[nx][ny]=0;
	}
}
int main(){
	cin>>n>>m>>t;
	cin>>s1>>s2>>s3>>s4;
	for(int i=1;i<=t;i++){
		cin>>a[i]>>b[i];
		vis[a[i]][b[i]]=1;
	}
	dfs(s1,s2);
	cout<<sum;
	return 0;
}
2024/8/6 15:14
加载中...