救救孩子吧
  • 板块题目总版
  • 楼主xiezihan
  • 当前回复6
  • 已保存回复6
  • 发布时间2021/5/18 12:32
  • 上次更新2023/11/4 23:07:28
查看原帖
救救孩子吧
219814
xiezihan楼主2021/5/18 12:32

题目

#include<bits/stdc++.h>
//#pragma GCC optimize(2)
using namespace std;
bool flag=false;
int ax,ay,bx,by;
int tx[4]={0,1,0,-1},ty[4]={1,0,-1,0};
bool b[101][101];
char a[101][101];
int n;
void xxx(int x,int y)
{
	if(x==bx&&y==by)
	{
		flag=true;
		return ;
	}
	int dx,dy;
	for(int i=0;i<4;i++)
	{
		dx=tx[i]+x;
		dy=ty[i]+y;
		if(dx>=0&&dy>=0&&dx<n&&dy<n&&b[dx][dy]&&a[dx][dy]=='.')
		{
			x=dx,y=dy;
			b[x][y]=false;
			xxx(x,y);
			b[x][y]=true;
			x=x-tx[i];
			y=y-ty[i];
		}
	}
}
int main()
{
	int k;
	cin>>k;
	while(k>0)
	{
		
		flag=false;
		cin>>n;
		memset(b,true,sizeof(b));
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				cin>>a[i][j];
			}
		}
		cin>>ax>>ay>>bx>>by;
		b[ax][ay]=false;
		if(a[ax][ay]=='#'||a[bx][by]=='#')
		{
			cout<<"NO";
			continue;
		}
		xxx(ax,ay);
		
		if(flag)cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
		k--;
	}
}

样例过了,评测全TLE

2021/5/18 12:32
加载中...