30分求调
  • 板块P1605 迷宫
  • 楼主lucky_loser
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/2/10 20:15
  • 上次更新2023/10/24 01:13:28
查看原帖
30分求调
754146
lucky_loser楼主2023/2/10 20:15

代码如下

#include<bits/stdc++.h>
using namespace std;
int n,m,t,sx,sy,fx,fy,tx,ty,a[6][6],ans;
int read()
{
	int s=0,w=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')
			w=-1;
		c=getchar();
		return s*w;
	}
	while(c>='0'&&c<='9')
	{
		s=s*10+c-'0';
		c=getchar();
		return s*w;
	}
}
void print(int x)
{
	if(x<0)
	{
		putchar('-');
		x=-x;
	}
	if(x>=10)
		print(x/10);
	putchar(x%10+'0');
	return;
}
void dfs(int x,int y)
{
	if((x<1||x>n)||(a[x][y]==1)||(y<1||y>m))
		return;
	if(x==fx&&y==fy)
	{
		ans++;
		return;
	}
	a[x][y]=1;
	dfs(x+1,y);
	dfs(x,y+1);
	dfs(x-1,y);
	dfs(x,y-1);
	a[x][y]=0;
}
int main()
{
	n=read(),m=read(),t=read(),sx=read(),sy=read(),fx=read(),fy=read();
	for(int i=1;i<=t;i++)
	{
		tx=read(),ty=read();
		a[tx][ty]=1;
	}
	dfs(sx,sy);
	print(ans);
	return 0;
} 
2023/2/10 20:15
加载中...