Logo Will.Pam的博客

博客

#993 哪里错了?

2023-05-23 20:32:44 By Will.Pam
#include<bits/stdc++.h>
using namespace std;
int n,Road[1001][1001];
char a[1001][1001];
queue<pair<int,int>> q;
bool ok(int x,int y){
    if(x<0 || x>(n-1) || y<0 || y>(n-1) || a[x][y]=='1') return 0;
    return 1;
}
int main(){
    cin>>n;
    memset(Road,-1,sizeof(Road));
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            cin>>a[i][j];
    }
    int start_x,start_y;
    int end_x,end_y;
    cin>>start_x>>start_y>>end_x>>end_y;
    start_x--;
    start_y--;
    end_x--;
    end_y--;
    q.push(make_pair(start_x,start_y));
    Road[start_x][start_y]=0;
    int move_x[4]={0,1,-1,0};
    int move_y[4]={1,0,0,-1};
    pair<int,int> p;
    while(!q.empty()){
        p=q.front();
        q.pop();
        int x=p.first;
        int y=p.second;
        int nx,ny;
        for(int i=0;i<4;i++){
            nx=x+move_x[i];
            ny=y+move_y[i];
            if(ok(nx,ny)==1 && Road[nx][ny]==-1){
                q.push(make_pair(nx,ny));
                Road[nx][ny]=Road[x][y]+1;
            }
        }
    }
    cout<<Road[end_x][end_y];
    return 0;
}

0分,输出都是-1,但本地自测样例没问题

评论

Will.Pam
@xushuoxin @std
Will.Pam
@zuotingting @乙鸟
xushuoxin
看出来了,最好别用start,end这种做变量,别忘了评测按Linux系统算

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。