蒟蒻求助dalao

P2895 [USACO08FEB] Meteor Shower S

Mr_Ender @ 2020-03-27 15:23:45


#include<iostream>
using namespace std;
struct node{
   int x;
   int y;
   int t;   
}met[50005];
struct node que[160005];
struct node v,v1;
int book[405][405];
int map[405][405];
int main(){
    int m,i,j,t,fro=1,beh=2,k=0,i1,j1;
    cin>>m;
    for(i=1;i<=m;i++){
        cin>>met[i].x>>met[i].y>>met[i].t;
        map[met[i].x][met[i].y]=1;
        v1=met[i];
        v1.x++;
        if(v1.x>=0&&v1.y>=0){
            map[v1.x][v1.y]=1;
        }
        v1=met[i];
        v1.x--;
        if(v1.x>=0&&v1.y>=0){
            map[v1.x][v1.y]=1;
        }
        v1=met[i];
        v1.y++;
        if(v1.x>=0&&v1.y>=0){
            map[v1.x][v1.y]=1;
        }
        v1=met[i];
        v1.y--;
        if(v1.x>=0&&v1.y>=0){
            map[v1.x][v1.y]=1;
        }
    }
    que[fro].x=0;
    que[fro].y=0;
    que[fro].t=0;
    book[0][0]=1;
    t=0;
    while(fro<beh){
        for(i=1;i<=m;i++){
            if(met[i].t==t){
                map[met[i].x][met[i].y]=2;
                v1=met[i];
                v1.x++;
                if(v1.x>=0&&v1.y>=0){
                    map[v1.x][v1.y]=2;
                }
                v1=met[i];
                v1.x--;
                if(v1.x>=0&&v1.y>=0){
                    map[v1.x][v1.y]=2;
                }
                v1=met[i];
                v1.y++;
                if(v1.x>=0&&v1.y>=0){
                    map[v1.x][v1.y]=2;
                }
                v1=met[i];
                v1.y--;
                if(v1.x>=0&&v1.y>=0){
                    map[v1.x][v1.y]=2;
                }
            }
        }
            if(map[que[fro].x][que[fro].y]==0){
                cout<<que[fro].t;
                k=1;
                break;
            }
            v=que[fro];
            v.x++;
            v.t++;
            if(v.x>=0&&v.y>=0){
                if(map[v.x][v.y]!=2){
                    if(book[v.x][v.y]==0){
                        book[v.x][v.y]=1;
                        que[beh]=v;
                        beh++;
                    }
                }
            }
            v=que[fro];
            v.x--;
            v.t++;
            if(v.x>=0&&v.y>=0){
                if(map[v.x][v.y]!=2){
                    if(book[v.x][v.y]==0){
                        book[v.x][v.y]=1;
                        que[beh]=v;
                        beh++;
                    }
                }
            }
            v=que[fro];
            v.y++;
            v.t++;
            if(v.x>=0&&v.y>=0){
                if(map[v.x][v.y]!=2){
                    if(book[v.x][v.y]==0){
                        book[v.x][v.y]=1;
                        que[beh]=v;
                        beh++;
                    }
                }
            }
            v=que[fro];
            v.y--;
            v.t++;
            if(v.x>=0&&v.y>=0){
                if(map[v.x][v.y]!=2){
                    if(book[v.x][v.y]==0){
                        book[v.x][v.y]=1;
                        que[beh]=v;
                        beh++;
                    }
                }
            }
            t++;
            fro++;
        }
        if(k==0){
            cout<<-1;
        }   
        return 0;
}

by GsjzTle @ 2020-03-27 15:30:39

...


by bovine__kebi @ 2020-03-27 15:39:53

这有几百行啊。。。


by huansen666666 @ 2020-03-27 16:01:29

写个函数好不好QAQ


|