40分求调,玄关
  • 板块P1605 迷宫
  • 楼主zhangfengyao
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/10/23 22:43
  • 上次更新2024/10/24 10:16:38
查看原帖
40分求调,玄关
1259912
zhangfengyao楼主2024/10/23 22:43
#include<iostream>
using namespace std;
char maps[15][15];
bool vis[15][15];
int n,m,t;
int sx,sy;
int fx,fy;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
int ans=0;
struct node
{
	int x,y;
};
node obs[15];
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];
		int yy=y+dy[i];
		if(xx>=0&&xx<=n&&yy>=0&&yy<=n&&maps[xx][yy]=='.'&&vis[xx][yy]!=true)
		{
			vis[xx][yy]=true;
			dfs(xx,yy);
			vis[xx][yy]=false;
		}
	}
}
int main()
{
    cin>>n>>m>>t;
    cin>>sx>>sy>>fx>>fy;
    for(int i=0;i<t;i++)
    {
    	cin>>obs[i].x>>obs[i].y;
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			for(int k=0;k<t;k++)
			{
				if(i==obs[k].x&&j==obs[k].y)
				{
					maps[i][j]='#';
				}
				else
				{
					maps[i][j]='.';
				}
			}
		}
	}
	vis[sx][sy]=true;
	dfs(sx,sy);
	cout<<ans<<endl;
	return 0;
}

求调,玄关\Huge{求调,玄关}

2024/10/23 22:43
加载中...