40分求助
查看原帖
40分求助
1165146
Linco2012楼主2024/3/6 16:05

只要回答是yes就错

#include<iostream>
using namespace std;
char r[101][101];
int c=0;
int n,m;
int dir[4][2]={{0,-1},{0,1},{-1,0},{1,0}};
void g(int x,int y)
{
	if(x==n&&m==y)
	{
		c=1;
		return;
	}
	if(c==1||x<=1||x>=n||y<=1||y>=m)	return;
	r[x][y]='#';
	for(int i=0;i<4;i++)
	{
		int a=x-dir[i][0];
		int b=y-dir[i][1];
		if(a>=1&&a<=n&&b>=1&&b<=m&&r[a][b]=='.')
		{
			g(a,b);
		}
	}
	r[x][y]='.';
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			scanf("%c",&r[i][j]);
		}
	}
	g(1,1);
	if(c)    cout<<"Yes";
	else    cout<<"No";
	return 0;
}
2024/3/6 16:05
加载中...