为什么对于我的代码贝茜是必死无疑的

P2895 [USACO08FEB] Meteor Shower S

Surge_of_Force @ 2021-07-24 11:21:14

#include<bits/stdc++.h>
using namespace std;
const int MAX=50010;
struct lx{
    int t,x,y;
}rp[MAX];
void bfs();
int m,dx[5]{0,-1,-1,1,1},dy[5]={0,-1,1,-1,1},maps[310][310],safe[310][310],timee,f[310][310],jl1[1010],jl2[1010];
int main()
{
    ios::sync_with_stdio(false);
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>rp[i].t>>rp[i].x>>rp[i].y;
        jl1[rp[i].t]=rp[i].x;//记录t时刻陨石落点 
        jl2[rp[i].t]=rp[i].y;
    }  
    for(int i=1;i<=m;i++)
    {
        safe[rp[i].x][rp[i].y]=1;//标记地点是否安全 
        for(int j=1;j<=4;j++)
            safe[rp[i].x+dx[j]][rp[i].y+dy[j]]=1; 
    }   
    bfs();
    cout<<timee;
    return 0; 
}
void bfs()
{
    int i=0,j=1,t=0;
    int xx=0,yy=0;
    int ix[310]={0},iy[310]={0},jx[310]={0},jy[310]={0};
    while(i<j)
    {
        i++;
        if(safe[jx[j]][jy[j]])//若该点安全,搜索结束 
           return ;
        timee++;
        maps[jl1[timee]][jl2[timee]]=1;
        for(int k=1;k<=4;k++)
            maps[jl1[timee]+dx[k]][jl2[timee]+dy[k]]=1;//陨石落地
        for(int k=1;k<=4;k++)
        {
            xx=ix[i]+dx[k];yy=ix[i]+dy[k];
            if(!maps[xx][yy]&&jl1[timee+1]!=xx&&jl2[timee+1]!=yy&&!f[xx][yy])//防止贝茜被陨石砸死
            {
                xx+=dx[k];
                yy+=dy[k];
                j++;
                jx[j]=xx;
                jy[j]=yy;
            }  
        }
    }
    timee=-1;//贝茜终于还是被天谴了 
}

by 斜揽残箫 @ 2021-07-24 11:24:40

因为你写挂了


by 阿噫齐贝林 @ 2021-07-30 14:14:31

贝茜杀手


|