rlgrlgrlg @ 2023-04-05 10:56:12
#include<bits/stdc++.h>
using namespace std;
bool a[1010][1010];
struct node
{
int x,y;
int cnt;
};
queue<node> b;
int p[4][2]={
1,0,
0,1,
-1,0,
0,-1,
};
int n,x1,x2,y1,y2;
int main()
{
cin>>n;
string str;
for(int i=1;i<=n;i++)
{
cin>>str;
for(int j=1;j<=n;j++)
{
a[i][j]=str[j-1]-'0';
}
}
cin>>x1>>y1>>x2>>y2;
b.push((node){x1,y1,0});
while(!b.empty())
{
node t=b.front();
b.pop();
if(t.x==x2&&t.y==y2)
{
cout<<t.cnt;
break;
}
for(int i=0;i<4;i++)
{
int x=t.x+p[i][0];
int y=t.y+p[i][1];
if(x>0&&y>0&&x<=n&&y<=n&&!a[x][y])
{
b.push((node){x,y,t.cnt+1});
a[x][y]=1;
}
}
}
}```
by SkyWave @ 2023-04-05 10:58:23
@rlgrlgrlg 改掉万能头坏习惯就好了
by SkyWave @ 2023-04-05 10:59:15
--#include<bits/stdc++.h>
++#include <iostream>
++#include <queue>
by rlgrlgrlg @ 2023-04-05 10:59:23
在Devc++上运行没问题,但洛谷会显示编译错误
by SkyWave @ 2023-04-05 11:00:53
@rlgrlgrlg 听话,以后改掉万能头受益终生
by rlgrlgrlg @ 2023-04-05 11:01:13
这是为什么
by ud2_ @ 2023-04-05 11:01:40
别用全局变量就好了。全局、std*
、posix
这些命名空间是标准库放东西的地方。
@@ -1,5 +1,6 @@
#include<bits/stdc++.h>
using namespace std;
+namespace {
bool a[1010][1010];
struct node
{
@@ -14,7 +15,7 @@
0,-1,
};
int n,x1,x2,y1,y2;
-int main()
+void my_main()
{
cin>>n;
string str;
@@ -49,3 +50,5 @@
}
}
}
+}
+int main() { my_main(); }
by SkyWave @ 2023-04-05 11:01:50
@rlgrlgrlg 因为万能头就是邪教
by 2011FYCCCTA @ 2023-04-05 11:02:38
p数组定义错了!!!@rlgrlgrlg 应是:
int p[4][2]={
{1,0},
{0,1},
{-1,0},
{0,-1}
};
by SkyWave @ 2023-04-05 11:02:56
@2011FYCCCTA 这里没有问题
by SkyWave @ 2023-04-05 11:03:21
就是因为他是用了邪教,洛谷不乐意了