30 pts QAQ
  • 板块P1605 迷宫
  • 楼主封禁用户
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/1/11 17:22
  • 上次更新2024/1/11 20:50:19
查看原帖
30 pts QAQ
1098781
封禁用户楼主2024/1/11 17:22
#include<iostream>
#define cric(a,b) for(int i=(a);i<=(b);i++)
using namespace std;
long long dt[11][11]={1},ans;
bool bj[11][11]={0};
int n,m,t,sx,sy,fx,fy;

void dfs(int x,int y){
	if(x==fx&&y==fy){
		ans++;
		return;
	}
	if(bj[x+1][y]==0&&dt[x+1][y]){
		bj[x][y]=1;
		dfs(x+1,y);
		bj[x][y]=0;
	}
	if(bj[x-1][y]==0&&dt[x-1][y]){
		bj[x][y]=1;
		dfs(x-1,y);
		bj[x][y]=0;
	}
	if(bj[x][y+1]==0&&dt[x][y+1]){
		bj[x][y]=1;
		dfs(x,y+1);
		bj[x][y]=0;
	}
	if(bj[x][y-1]==0&&dt[x][y-1]){
		bj[x][y]=1;
		dfs(x,y-1);
		bj[x][y]=0;
	}
}

int main(){
	cin>>n>>m>>t;
	cin>>sx>>sy>>fx>>fy;
	cric(1,t){
		int x,y;
		cin>>x>>y;
		dt[x][y]=0;
	}
	bj[sx][sy]=1;
	dfs(sx,sy);
	cout<<ans;
	return 0;
}
2024/1/11 17:22
加载中...