80分求助
  • 板块P1605 迷宫
  • 楼主sxyn
  • 当前回复2
  • 已保存回复2
  • 发布时间2020/9/7 21:34
  • 上次更新2023/11/5 13:34:15
查看原帖
80分求助
197479
sxyn楼主2020/9/7 21:34
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iomanip>
using namespace std;
int n,m,t;
int sx,sy,fx,fy,a,b;
int ans=0;
bool M[105][105];
bool vis[105][105];
int X[4]={1,0,-1,0};
int Y[4]={0,-1,0,1};
void dfs(int xx,int yy)
{
	if(xx==fy&&yy==fy)
	{
		ans++;
		return;
	}
	else
	{
		for(int i=0;i<4;i++)
		{
			int dx=xx+X[i];
			int dy=yy+Y[i];
			if(!M[dx][dy]&&!vis[dx][dy]&&dx>=1&&dx<=n&&dy>=1&&dy<=m)
			{
				vis[dx][dy]=1;
				dfs(dx,dy);
				vis[dx][dy]=0;
			}
		}
	}
	
}
int main()
{
	scanf("%d%d%d%d%d%d%d",&n,&m,&t,&sx,&sy,&fx,&fy);
	while(t--)
	{
		scanf("%d%d",&a,&b);
		M[a][b]=1;
	}
	vis[sx][sy]=1;
	dfs(sx,sy);
	printf("%d\n",ans);
	return 0;
}
2020/9/7 21:34
加载中...