40分求助!
  • 板块P1605 迷宫
  • 楼主_5555_
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/5/1 09:56
  • 上次更新2023/10/28 02:31:32
查看原帖
40分求助!
722330
_5555_楼主2022/5/1 09:56
#include<bits/stdc++.h> 
#define N 100010

using namespace std;

typedef long long ll;

int n,m,fx,fy,a[10][10],f[10][10],dx[]={1,0,-1,0},dy[]={0,1,0,-1},ans=0;

void dfs(int x,int y)
{
	if (x==fx && y==fy)
	{
		ans++;
		return ;
	}
	for (int i=0;i<4;i++)
	{
		int xx = x+dx[i],yy = y+dy[i];
		if (xx>n || yy>m) continue;
		if (a[xx][yy]==0 && f[xx][yy])
		{
			f[xx][yy] = false;
			dfs(xx,yy);
			f[x][y] = true;
		}
	}
}

int main()
{
	ios::sync_with_stdio(false);
    cin.tie(0);
	int sx,sy,t;
	cin >> n >> m >> t >> sx >> sy >> fx >> fy;
	memset(a,0,sizeof(a));
	memset(f,true,sizeof(f));
	while(t--)
	{
		int x,y;
		cin >> x >> y;
		a[x][y] = 1;
		f[x][y] = false;
	}
	dfs(sx,sy);
	cout << ans << endl;
	return 0;
}
2022/5/1 09:56
加载中...