只有30分
  • 板块P1605 迷宫
  • 楼主Owenzjg
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/8/19 18:09
  • 上次更新2023/11/4 10:01:31
查看原帖
只有30分
515971
Owenzjg楼主2021/8/19 18:09
#include<bits/stdc++.h>
using namespace std;
int n,m,t;
int jishu=0;
string maze[10];
bool vist[10][10];
int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}};
bool in(int x, int y) {
	if (0 <= x && x < n && 0 <= y && y < m) {
		return 1;
	}
	return 0;
}
void dfs(int x, int y) {
	if(maze[x][y]=='z'){
		jishu++;
		return;
	}
	vist[x][y]=1;
	int i;
	int tx,ty;
	for(i=0;i<4;i++){
		tx=x+dir[i][0];
		ty=y+dir[i][1];
		if(maze[tx][ty]=='0'&&vist[tx][ty]==0&&in(tx,ty)){
			dfs(tx,ty);
		}
	}
	vist[x][y]=0;
}
int main() {
	int i;
	int j;
	cin>>n>>m>>t;
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			maze[i][j]='0';
		}
	}
	int qx,qy,zx,zy;
	cin>>qx>>qy>>zx>>zy;
	maze[zx][zy]='z';
	int a,b;
	for(i=1;i<=t;i++){
		cin>>a>>b;
		maze[a][b]='t';
	}
	dfs(qx,qy);
	cout<<jishu;
	return 0;
}
2021/8/19 18:09
加载中...