题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include<iostream>
#include<algorithm>
using namespace std;
int st[110][110],n,m;
char w[110][110];
int a[4][2]={{0,1},{1,0},{-1,0},{0,-1}};
int qx,qy,zx,zy,jz;
pair<int,int>q[110*110];
void bfs()
{
int hh=0,tt=-1 ,ok=0;
q[++tt]={qx,qy};
st[qx][qy]=1;
while(hh<=tt)
{
if(w[qx][qy]=='#') break;//卡在墙里面,
pair<int,int>t=q[hh++];
if(t.first==zx&&t.second==zy) cout<<"YES"<<endl,ok=1;
for(int i=0;i<4;i++)
{
int xx=t.first+a[i][0],yy=t.second+a[i][1];
if(xx<0||yy<0||xx>=jz||yy>=jz) continue;
if(w[xx][yy]=='#') continue;
if(st[xx][yy] )continue;
q[++tt]={xx,yy};
st[xx][yy]=1;
}
}
if(!ok)cout<<"NO"<<endl;
}
int main()
{
int ss;
cin>>ss;
while(ss--)
{
cin>>jz;
for(int i=0;i<jz;i++)
for(int j=0;j<jz;j++)
cin>>w[i][j],st[i][j]=0;
cin>>qx>>qy>>zx>>zy;
bfs();
}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla