@[Aakkosetsumussa](/user/400468) 他跑到(6,6)应该就可以看到了
by iterator_traits @ 2023-02-08 14:01:06
@[iterator_traits](/user/72922) 我也是这样想的
by Aakkosetsumussa @ 2023-02-08 14:05:32
现在调到60分,但还是过不去
```cpp
#include<bits/stdc++.h>
using namespace std;
typedef long long inr;
typedef unsigned long long unr;
typedef long double onr;
#define fr(y) for(inr i=1;i<=y;i++)
int n,m;
struct chessboard {
int x,y,step;
} c;
queue<chessboard> q;
int a[5005][5005],vis[5007][5007];
int dx[7]= {0,1,0,-1},dy[7]= {1,0,-1,0};
char ch;
int bx,by,cx,cy;
int main() {
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++) {
cin>>ch;
if(ch=='O') a[i][j]=0;
else a[i][j]=1;
}
while(cin>>cx>>cy>>bx>>by) {
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++) vis[i][j]=0;
if(bx==0&&by==0&&cx==0&&cy==0) break;
int pa=cx,pb=cy;
while(a[pa][pb]!=1&&pa<=n) vis[pa++][pb]=-1;
pa=cx,pb=cy;
while(a[pa][pb]!=1&&pb<=m) vis[pa][pb++]=-1;
pa=cx,pb=cy;
while(a[pa][pb]!=1&&pa>=1) vis[pa--][pb]=-1;
pa=cx,pb=cy;
while(a[pa][pb]!=1&&pb>=1) vis[pa][pb--]=-1;
pa=cx,pb=cy;
while(a[pa][pb]!=1&&pa<=n&&pb>=1) vis[pa++][pb--]=-1;
pa=cx,pb=cy;
while(a[pa][pb]!=1&&pb<=m&&pa<=n) vis[pa++][pb++]=-1;
pa=cx,pb=cy;
while(a[pa][pb]!=1&&pa>=1&&pb>=1) vis[pa--][pb--]=-1;
pa=cx,pb=cy;
while(a[pa][pb]!=1&&pb<=m&&pa>=1) vis[pa--][pb++]=-1;
vis[cx][cy]=-1;
if(vis[bx][by]==-1) {
cout<<0<<endl;
continue;
}
vis[bx][by]=1;
c.x=bx,c.y=by,c.step=0;
q.push(c);
bool fg=0;
while(!q.empty()) {
chessboard now=q.front();
q.pop();
/* cout<<now.x<<" "<<now.y<<" "<<now.step<<" "<<vis[now.x][now.y]<<endl;
for(int i=1; i<=n; i++,cout<<endl)
for(int j=1; j<=m; j++) cout<<vis[i][j]<<" ";
cout<<endl;
for(int i=1; i<=n; i++,cout<<endl)
for(int j=1; j<=m; j++) cout<<a[i][j]<<" ";
cout<<endl;
*/
for(int i=0; i<4; i++) {
int tx=now.x+dx[i],
ty=now.y+dy[i];
if(0<tx&&tx<=n&&0<ty&&ty<=m&&vis[tx][ty]!=1&&a[tx][ty]!=1) {
chessboard to;
to.x=tx,to.y=ty,to.step=now.step+1;
if(vis[tx][ty]!=-1) vis[tx][ty]=1;
else {
fg=1;
cout<<now.step+1<<endl;
break;
}
q.push(to);
}
}
if(fg==1) break;
}
if(fg==0) cout<<"Poor Harry\n";
//*/
}
return 0;
}/*
7 7
OOOOOOO
OOOOOOO
OOXXXOO
OOXOXOO
OOXXOOO
OOOOOOO
OOOOOOO
4 4 1 1
*/
```
by Aakkosetsumussa @ 2023-02-08 14:06:05
哈利的实力《非常》好
好他为什么要戴眼镜?
by liujiafang @ 2023-03-28 18:58:20
视力
by liujiafang @ 2023-03-28 18:58:33