您当前的位置: 首页 >  搜索

钟钟终

暂无认证

  • 1浏览

    0关注

    233博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

刷题---搜索(第八周)

钟钟终 发布时间:2021-10-31 16:02:37 ,浏览量:1

P2895 [USACO08FEB]Meteor Shower S 题意:就是需要移动多步才不会被流星砸到,也就是移动到安全的地方。(可用数组将不同时刻流星砸到的地方标记为便可解决) 也不是很难,要注意的细节很多。 1.可能会出现一种情况。300*300的格子中全都被流行砸到。那我们需要移动到之外的格子中,所以数组要开大一点。 2.如果3时刻和5时刻都被流星覆盖,则我们需要将单元格标记为小的时刻。 3.好多细节。明明不是很难,让我做了好久……

#include 

using namespace std;
int n;
int stn[305][305]; //标记石头几时刻砸向农场
int vis[305][305]; //记录改点是否走过
int step[305][305]; //记录步数
int dx[5]={0,0,0,1,-1};
int dy[5]={0,1,-1,0,0};
int check(int x)
{
    if(x==-1) return 100000;
    return x;
}
int main()
{
    freopen("in.txt","r",stdin);
    memset(stn,-1,sizeof(stn));
    cin>>n;
    int x,y,t;
    for(int i=1;i>x>>y>>t;
        for(int j=0;j=0&&y+dy[j]>=0&&(stn[x+dx[j]][y+dy[j]]==-1||stn[x+dx[j]][y+dy[j]]>t))
                stn[x+dx[j]][y+dy[j]]=t;
        }
    }
    queueq[2];
    vis[0][0]=1;
    q[0].push(0);
    q[1].push(0);
    while(!q[0].empty())
    {
        int x1=q[0].front();
        int y1=q[1].front();
        q[0].pop();
        q[1].pop();
        if(stn[x1][y1]==-1)
        {
            cout            
关注
打赏
1664378814
查看更多评论
0.0363s