一直WA最后一个点,自以为没问题

P2895 [USACO08FEB] Meteor Shower S

mot1ve @ 2020-11-13 08:16:02


#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f; 
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
int m;
int a[510][510];
bool vis[510][510];//bfs的特性,同一时间走到一个点没必要重复拓展。 
int dd[510][510];//标记这个格子什么时候会被炸毁
struct node{
    int x,y,day;
};
void bfs()
{
    queue<node> q;
    q.push((node){0,0,0});
    while(q.size())
    {
        node u=q.front();
        q.pop();
        int x=u.x;
        int y=u.y;
        int day=u.day;
        if(dd[x][y]==INF)
        {
            cout<<day;
            exit(0);
        }
        for(int i=0;i<4;i++)
        {
            int xx=x+dx[i];
            int yy=y+dy[i];
            if(xx<0||yy<0||xx>300||yy>300)
            continue;
            if((day<dd[xx][yy]-1)&&(!vis[xx][yy]))//走到那里的时候不会被砸死
            {
                vis[xx][yy]=1;
                q.push((node){xx,yy,day+1});
            } 
        }
    }
} 
int main()
{
    cin>>m;
    memset(dd,INF,sizeof(dd));//初始全都不会炸毁 
    for(int i=1;i<=m;i++)
    {
        int x,y,t;
        scanf("%d%d%d",&x,&y,&t);
        dd[x][y]=min(dd[x][y],t);
        dd[x+1][y]=min(dd[x+1][y],t);
        dd[x-1][y]=min(dd[x-1][y],t);;
        dd[x][y+1]=min(dd[x][y+1],t);
        dd[x][y-1]=min(dd[x][y-1],t);
    }
    bfs();
    cout<<"-1";
    return 0;
}

by Priori_Incantatem @ 2020-11-13 08:26:22

首页三贴危


by haooo @ 2020-11-13 08:28:10

关键是3个贴都不能算没有意义(


by —维尼— @ 2020-11-13 08:28:54

cz!就是他在洛谷买房住!


by Van♂樣年华 @ 2020-11-13 08:35:58

其实他好像差不多一天有那么十几个贴(我水讨论的时候总能看到)


by mot1ve @ 2020-11-13 08:36:45

@Van♂樣年华 额,,可能是我比较菜,同学回去学文化课了。也没人问


by Van♂樣年华 @ 2020-11-13 08:39:41

@wqy_03 我菜,不懂


by hanwb123456 @ 2021-01-13 17:59:00

因为可以走出300外,他只说流星落在300内,没有说人一定要在300内


|