C++ 30分求助!
  • 板块P1605 迷宫
  • 楼主_dhrxx_
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/17 20:50
  • 上次更新2023/11/2 13:11:49
查看原帖
C++ 30分求助!
407994
_dhrxx_楼主2023/10/17 20:50

代码:

#include<cstdio>
using namespace std;
int n,m,t,ans; 
int sx,sy,fx,fy;
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0}; 
int zx[100],zy[100]; 
int ax[100],ay[100];
int vx[100],vy[100];
void dfs(int x,int y) 
{
	if(sx==fx&&sy==fy)
	{
		ans++;
		return;
	}
	for(int k=0;k<4;k++)
	{
		int tx,ty;
		tx=x+dx[k];
		ty=y+dy[k];
		if(ax[tx]==0&&ay[ty]==0&&vx[tx]==0&&vy[ty]==0)
		{
			vx[tx]=1;
			vy[ty]=1;
			dfs(tx,ty);
		}
	}
}
int main()
{
	scanf("%d%d%d",&n,&m,&t);
	scanf("%d%d%d%d",&sx,&sy,&fx,&fy);
	for(int i=1;i<=t;i++)
	{
		scanf("%d%d",&zx[i],&zy[i]);
		ax[zx[i]]=1;
		ay[zy[i]]=1;
	}
	vx[sx]=1;
	vy[sy]=1;
	dfs(sx,sy);
	printf("%d",ans);
	return 0;
}
2023/10/17 20:50
加载中...