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
贝茜杀手