40分,求助
  • 板块P1605 迷宫
  • 楼主Vince_ni
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/20 16:30
  • 上次更新2024/8/20 18:46:55
查看原帖
40分,求助
1279518
Vince_ni楼主2024/8/20 16:30
#include<bits/stdc++.h>
using namespace std;
int sa[10][10],n,m,T,sx,sy,fx,fy,t=0;
void dfs(int x,int y){
	//cout<<x<<" "<<y<<endl;
	if(x==fx&&y==fy){
		t++;
	}else{
		if(x-1>=1&&sa[x-1][y]==0){
			sa[x][y]=1;
			dfs(x-1,y);
			sa[x][y]=0;
		}else if(y-1>=1&&sa[x][y-1]==0){
			sa[x][y]=1;
			dfs(x,y-1);
			sa[x][y]=0;
		}else if(y+1<=m&&sa[x][y+1]==0){
			sa[x][y]=1;
			dfs(x,y+1);
			sa[x][y]=0;
		}else if(x+1<=n&&sa[x+1][y]==0){
			sa[x][y]=1;
			dfs(x+1,y);
			sa[x][y]=0;
		}
	}
}
int main(){
	cin>>n>>m>>T>>sx>>sy>>fx>>fy;
	while(T--){
		int a,b;
		cin>>a>>b;
		sa[a][b]=1;
	}
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<sa[i][j];
		}
		cout<<endl;
	}*/
	dfs(sx,sy);
	cout<<t;
	return 0;
}
2024/8/20 16:30
加载中...