广搜莫名其妙的编译错误

P1746 离开中山路

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 2011FYCCCTA @ 2023-04-05 11:03:58

@SkyWave哦,谢谢改正


by Milthm @ 2023-04-05 11:04:44

@rlgrlgrlg 变量y1的问题把


by qifan_maker @ 2023-04-05 11:05:51

@SkyWave 这和万能头有啥关系,我通过200题用的万能头一个编译错误都没有


by SkyWave @ 2023-04-05 11:07:53

y1 也不愿意加入万能头邪教,所以遁逃导致编译错误


by rlgrlgrlg @ 2023-04-05 11:09:00

将万能头文件改掉或将y1,x1,y2,x2定义为局部变量都能通过,但这是为什么啊


by SkyWave @ 2023-04-05 11:09:54

@rlgrlgrlg 因为你开在局部变量就等于造了城墙,这几个人逃不出去了


by Linune_Gump @ 2023-04-05 11:12:44

事实上……二维数组没错,只是y1是一个某一个库中的关键字,不能重复定义,至于你的dev为什么没有报错……建议重新装一下,然后把warning和error开到最大。

鉴于以上原因,楼上的所有方法都是成效的

至于万用头是邪教,这点我不认同。本人用了三年万能头了,很方便,出于小心不用也可以,但不能因噎废食,除非你觉得火车头能显示出你高超的水平。


by Strelitzia_ @ 2023-04-05 11:15:08

@SkyWave 别发电了。万能头不好用大概率是自己不会起变量名。


by SkyWave @ 2023-04-05 11:15:58

@Strelitzia_ 抓住邪教组织宣扬者!!!


by SkyWave @ 2023-04-05 11:19:47

小心洛谷编译器生气不给你程序编译了以后!!!


上一页 | 下一页