C++蒟蒻求解

P2895 [USACO08FEB] Meteor Shower S

__Cocoa__ @ 2020-06-18 11:30:46

#include <iostream>
#include <queue>
using namespace std;

int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};

int m;

struct pos{
    int safe,t;
    pos():safe(true){
    }
};
struct Node{
    int x,y,value;
};

pos danger[301][301];
bool vis[301][301];

void BFS();

int main(){
    cin>>m;
    int x,y,t;
    for(int i=0;i<m;i++){
        cin>>x>>y>>t;

        danger[x][y].safe=
        danger[x+1][y].safe=false;
        if(x!=0)
            danger[x-1][y].safe=false;
        danger[x][y+1].safe=false;
        if(y!=0)
            danger[x][y-1].safe=false;

        danger[x][y].t=
        danger[x+1][y].t=t;
        if(x!=0)
            danger[x-1][y].t=t;
        danger[x][y+1].t=t;
        if(y!=0)
            danger[x][y-1].t=t;
    }
    BFS();

    return 0;
}

void BFS(){
    queue<Node> q;
    Node head,tmp;
    head.value=head.x=head.y=0;
    q.push(head);

    while(!q.empty()){
        head=q.front();
        q.pop();
        if(danger[head.x][head.y].safe){
            cout<<head.value;
            return ;
        }
        for(int i=0;i<4;i++){
            tmp.value=head.value+1;
            tmp.x=head.x+dx[i];
            tmp.y=head.x+dy[i];
            if(danger[tmp.x][tmp.y].safe){
                q.push(tmp);
                continue;
            }
            if(danger[tmp.x][tmp.y].t>tmp.value)
                q.push(tmp);

        }
    }
}

样例无输出?


by __Cocoa__ @ 2020-06-20 09:39:58

最后一个点洛谷IDE竟然说输入长度不合法

Σ(っ °Д °;)っ

QAQ


|