40 pts
  • 板块P1605 迷宫
  • 楼主yyjw14
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/13 22:53
  • 上次更新2023/11/2 14:00:48
查看原帖
40 pts
916380
yyjw14楼主2023/10/13 22:53
#include<bits/stdc++.h>
using namespace std;
const int N=10;
int i,j,k,m,n,dx,dy,dx1,dy1,u,v,sum,cnt;
bool vis[N][N];
int vx[]={0,1,0,-1};
int vy[]={1,0,-1,0};
void dfs(int x_1,int y_1)
{
	if(x_1==dx1&&y_1==dy1)
	{
		sum++;
		return ;
	}
	else
	{
		for(cnt=0;cnt<4;cnt++)
		{
			int cp=x_1;
			int cpp=y_1;
			cp+=vx[cnt];
			cpp+=vy[cnt];
			if(vis[cp][cpp]==0&&cp>=1&&cp<=i&&cpp>=1&&cpp<=j)
			{
				vis[cp][cpp]=1;
				dfs(cp,cpp);
				vis[cp][cpp]=0;
			}
		}
	}
	return;
}
int main()
{
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	cin>>i>>j>>k;
	cin>>dx>>dy>>dx1>>dy1;
	for(m=1;m<=k;++m)
	{
		cin>>u>>v;
		vis[u][v]=1;
	}
	vis[dx][dy]=1;
	dfs(dx,dy);
	cout<<sum;
	return 0;
	
}

2023/10/13 22:53
加载中...