POJ 3669 - Meteor Shower(广搜)

【题解】POJ 3669 Meteor Shower(BFS) POJ 3669 Meteor Shower https://vjudge.net/problem/POJ-3669 题意 有一场流星雨即将到来,Bessie要找到一个安全的地方。现在已知有M颗流星,并且知道它们抵达的位置和时间,Bessi走一个单位需要一个单位时间,问到达安全位置的最短时间,如果无法到达安全位置就输出-1。 细则: 1、Bessie从起点出发,可以向上下左右四个方向行走。 ... 阅读详情

Meteor Shower
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 6218 Accepted: 1836

Description

Bessie hears that an extraordinary meteor shower is coming; reports say that these meteors will crash into earth and destroy anything they hit. Anxious for her safety, she vows to find her way to a safe location (one that is never destroyed by a meteor) . She is currently grazing at the origin in the coordinate plane and wants to move to a new, safer location while avoiding being destroyed by meteors along her way.

The reports say that M meteors (1 ≤ M ≤ 50,000) will strike, with meteor i will striking point (Xi, Yi) (0 ≤ Xi ≤ 300; 0 ≤ Yi ≤ 300) at time Ti (0 ≤ Ti  ≤ 1,000). Each meteor destroys the point that it strikes and also the four rectilinearly adjacent lattice points.

Bessie leaves the origin at time 0 and can travel in the first quadrant and parallel to the axes at the rate of one distance unit per second to any of the (often 4) adjacent rectilinear points that are not yet destroyed by a meteor. She cannot be located on a point at any time greater than or equal to the time it is destroyed).

Determine the minimum time it takes Bessie to get to a safe place.

Input

* Line 1: A single integer: M
* Lines 2..M+1: Line i+1 contains three space-separated integers: Xi, Yi, and Ti

Output

* Line 1: The minimum time it takes Bessie to get to a safe place or -1 if it is impossible.

Sample Input

4
0 0 2
2 1 2
1 1 2
0 3 5

Sample Output

5


================================

题目大意:流星在t时刻砸在(x,y)点以及周围四个点。人从(0,0)开始走,每秒走一步,上下左右都行,但是要在第一象限。问最少多少步才能走到安全区域。


思路:把map数组置为-1,预处理一下,把所有被砸的点记上砸下来的时间,依然为-1的点就是安全点了。如果到达某一点的时间大于该点被破坏的时间就不能走,直接continue。看最少多少步能走到一个-1点。

需要注意的是流星砸下来的区域在0<=x,y<=300,但是安全区域在整个第一象限。


#include <iostream>
#include <cstdio>
#include <queue>
#include <algorithm>
#include <cstring>

using namespace std;

int dir[4][2]={{-1,0},{0,-1},{0,1},{1,0}};
int map[333][333],vis[333][333];
int time,m;

struct point
{
    int x,y,t;
}p,s[55555];

queue <point> que;

bool cmp(point a,point b)
{
    return a.t<b.t;
}

bool check(int x,int y)
{
    if(x>=0&&y>=0) return 1;
    return 0;
}

void solve()
{
    for(int i=0;i<m;i++)
    {
        if(map[s[i].x][s[i].y]==-1)
            map[s[i].x][s[i].y]=s[i].t;
        if(map[s[i].x-1][s[i].y]==-1&&s[i].x>=1)//小心别出界
            map[s[i].x-1][s[i].y]=s[i].t;
        if(map[s[i].x][s[i].y-1]==-1&&s[i].y>=1)//小心别出界
            map[s[i].x][s[i].y-1]=s[i].t;
        if(map[s[i].x][s[i].y+1]==-1)
            map[s[i].x][s[i].y+1]=s[i].t;
        if(map[s[i].x+1][s[i].y]==-1)
            map[s[i].x+1][s[i].y]=s[i].t;
    }
}

int bfs()
{
    p.x=0;p.y=0;p.t=0;
    que.push(p);
    vis[0][0]=1;
    while(!que.empty())
    {
        point temp=que.front();
        que.pop();
        if (temp.t>=map[temp.x][temp.y]) continue;
        for(int i=0;i<4;i++)
        {
            p.x=temp.x+dir[i][0];
            p.y=temp.y+dir[i][1];
            p.t=temp.t+1;
            if(!vis[p.x][p.y])
            {
                time=p.t;
                if(check(p.x,p.y)&&map[p.x][p.y]==-1)//到达安全区域了
                {
                    return time;
                }
                else if(check(p.x,p.y)&&p.t<map[p.x][p.y])
                {
                    que.push(p);
                    vis[p.x][p.y]=1;//标记已经走过的点
                }
            }
        }
    }
    return -1;
}

int main()
{
    memset(map,-1,sizeof(map));
    memset(vis,0,sizeof(vis));
    scanf("%d",&m);
    for(int i=0;i<m;i++)
        scanf("%d%d%d",&s[i].x,&s[i].y,&s[i].t);
    sort(s,s+m,cmp);
    solve();
    /*for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
            cout<<map[i][j]<<" ";
        cout<<endl;
    }*/
    int ans=bfs();
    if(ans!=-1) printf("%d\n",ans);
    else printf("-1\n");
    return 0;
}


张正友标定法-MATLAB实验 该方法最早由微软研究院的Zhengyou Zhang教授提出,1998年发表在IEEE TRANSACTIONS ON PATTERNANALYSIS AND MACHINE INTELLIGENCE,论文题目为:AFlexible New Technique for Camera Calibration。 (一)标定平面到图像平面的单应性 单应性(homography):在计算机视觉中被定义 阅读详情

相关推荐

qemu-system-aarch64参数详解与实战配置指南

本文详细解析了qemu-system-aarch64的核心参数,包括-machine、cpu、smp、m、drive和netdev等关键配置。通过嵌入式内核调试、完整系统运行和外设模拟三大实战场景,提供可直接使用的配置示例与性能优化技巧,帮助开发者在x86主机上高效构建和调试ARM64虚拟环境。

weixin_29197051的博客 353

POJ 3669Meteor Shower(广搜)

Description Bessie hears that an extraordinary meteor shower is coming; reports say that these meteors will crash into earth and destroy anything they hit. Anxious for her safety, she vows to fin

Devin的专栏 580

Python经常遇到导入xlwings就出错,如何解决

Python经常在导入xlwings时遇到错误。有人建议尝试重装或升级xlwings,但这些操作后仍然无法解决导入错误问题。

felix_8的博客 1740

广搜 Meteor Shower poj 3669

题目大意:巨大流星雨即将袭来。每个流星会对击中的地方以及周围(上下左右四格)造成破坏。Bessie开始时位于(0, 0)位置,并希望逃到一处不会被袭击到的地方(在第一象限内)。已知每移动一格需要1个时间单位,被流星破坏后的地方不能再进入。给出M个流星在T时刻击中的地方(X, Y),问Bessie能否逃到安全的地方,若能输出最短时间,否则输出-1。裸的广搜,注意判重即可#include &lt;io...

xutian_curry的博客 186

保姆级教程:在爱快iKuai虚拟机里装OpenWrt旁路由,实现去广告和特殊功能

本文提供在爱快iKuai虚拟机中安装OpenWrt旁路由的详细教程,帮助用户实现去广告和特殊功能扩展。通过分步指导,包括虚拟机配置、网络设置和功能优化,打造稳定高效的家庭网络环境,特别适合软路由爱好者和网络管理员。

weixin_31364787的博客 829

奇迹MU单机版开服全流程:从零搭建到分辨率调整(附GM工具使用技巧)

本文详细介绍了奇迹MU单机版从零搭建到分辨率调整的完整流程,包括环境配置、服务端启动、GM工具使用技巧等关键步骤。特别针对现代高分辨率显示器提供了优化方案,帮助玩家轻松搭建个性化游戏环境,重温经典MMORPG的独特魅力。

b3n4m5q6w7的博客 680

POJ 3669:Meteor Shower 处处是坑的广搜

用了两个图,met记录流星最早砸下来的时间,in记录人活着的时间 我注意了一开始会死,但按照 t = 1 算的,结果t是可以为0的。。。 还有几个坑: 1、安全区可以到301 2、同一个点可以炸两次 3、必须在第一象限 4、可以一开始就死,也可以一开始就是安全区

ChenyangDu的博客 497

GPMC开发笔记(TI开发者推荐笔记)

因为gpmc(General-Purpose Memory Controller)是TI特有的驱动,gpmc的资料比较少,本人开发gpmc驱动算是摸了很多石头过河的。所以想通过这遍文章可以给也做GPMC驱动开发的后来者有一点参考价值。文章如有瑕疵也请各位批评改正。 1.GPMC介绍 gpmc主要用于与nandflash,norflash,fpga进行通信。在这里主要介绍gpmc16位数据和地址线不复用nor模式下的通信。 注意:在这种模式下gpmc_a[0]引脚是没法使用的 1.1GPMC信号线

weixin_44316996的博客 7502

POJ - 3669 Meteor Shower (广搜+标记)

Meteor Shower  POJ - 3669  Bessie hears that an extraordinary meteor shower is coming; reports say that these meteors will crash into earth and destroy anything they hit. Anxious for her safety,

hao_994的博客 304

具身智能ACT模型在lerobot机械臂上的实践与优化

本文详细介绍了如何在低成本lerobot机械臂上实践与优化具身智能ACT模型。从环境搭建、数据采集到模型原理与代码实战,提供了完整的入门指南。重点分享了通过数据增强、混合开源数据集及模型微调等策略,有效提升模型在抓取放置任务中的泛化能力与鲁棒性,为机器人学习爱好者提供了宝贵的实战经验。

weixin_29081703的博客 169

SAPFiori Elements Analytical List Page 概述

ALP(Analytical List Page)是SAP Fiori提供的一种复合页面类型,结合了分析(图表/KPI)与事务(表格/操作)功能,适用于需要分析后立即执行处理的业务场景(如采购价格监控、销售逾期处理等)。其核心价值在于让用户在同一页面完成从数据洞察到事务处理的闭环,减少应用切换带来的效率损耗。 页面结构包含页头KPI标签、交互式图表和明细表格,通过联动过滤、选择同步等机制实现数据钻取与即时操作。支持标准过滤和可视化过滤,并依赖OData注解(SelectionVariant/Presenta

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 269

Meteor Shower POJ - 3669 广搜

D - Meteor Shower  POJ - 3669  题意:找到一个不会有炸弹的地方。 思路:先将地图赋初值为-1,输入一个炸弹的坐标和时间后,就将地图上被炸弹炸过的地方标记为炸弹落下的时间,如果已经被标记过,并且数值不同,这时应标记为时间更小的值。接下来,广搜,找到一个为初值-1的地方即可。 代码: #include #include #include using

mjj1024的博客 346

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略 目录 Knowledge Engineering知识工程的简介 0.1、What 0.2、How 0.3、Why 1、知识工程过程的5个活动 2、知识图谱的应用 Knowledge Engineering知识工程的发展 1、前知识工程时期——1950-1970时期:图...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5335

POJ3669 Meteor Shower 流星雨【预处理】【广搜】

这个题有个坑点…就是流星虽然只能炸到300 X 300的区域,但是Bessie可以走到第一象限的任何地方,所以MAXSIZE 开大点吧… #include #include #include #include #include #include #define DEBUG(x) std::cerr const int MAXM = 50000 + 1; const int MAX

Zolrk的博客 398

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

POJ - 3669 Meteor Shower(广搜)

Meteor Shower Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20557   Accepted: 5345 Description Bessie hears that an extraordinary meteor shower is coming;

ling_bei的博客 253

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

POJ-3669--Meteor Shower---BFS广搜

AKatsuki

Akatsuki 574

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

POJ 3669 Meteor Shower 流星雨 解题思路心得 BFS广搜 C/C++AC代码(另有TLE不知其因)

原题 http://poj.org/problem?id=3669 题意 贝西(Bessie)听说即将发生一场异常的流星雨;有报道称这些流星将坠入大地并摧毁其所击中的任何东西,为安全着急,她发誓要找到一个安全的地方(一个从未被流星摧毁的路)。 她目前正在坐标平面上的原点放牧,并希望移至新的更安全的位置,同时避免沿途被流星摧毁。 报告说,在时间Ti(0≤Ti≤1,000)时,M个流星(1≤M≤50,...

cc2855816075的博客 960

【POJ3669】Meteor Shower 题解

http://poj.org/problem?id=3669 题意 有 MMM 个流星即将落到地球上。其中,第 iii 个会在 TiT_iTi​ 时落在 (Xi,Yi)(X_i, Y_i)(Xi​,Yi​) (0≤Xi,Yi≤300)(0\le X_i,Y_i \le 300)(0≤Xi​,Yi​≤300) 处,落地后,上下左右的四个格子也会被摧毁。 在第 000 秒,Bessie从原点处开始移动,她在第一象限中每秒移动一个坐标格,求什么时候可以到达安全的地方。 分析 BFS,普通的BFS判断能否转移时的条

weixin_47205053的博客 247

poj3669 Meteor Shower(BFS)

题目链接:poj3669 Meteor Shower 我只想说这题WA了后去看讨论才发现的坑点,除了要注意原点外,流星范围题目给的是[0,300],到302的位置就绝对安全了。。。 1 #include<cstdio> 2 #include<cmath> 3 #include<queue> 4 #include<cstr...

dhe56357的博客 256

Poj3669 meteor shower bfs

题目链接:http://poj.org/problem?id=3669 题目大意:女主牛在起点(0,0),天气预报说今天会下流星雨,女主牛得逃生,流星砸下来它的附近的四个格点的位置都会被毁灭,以后不能再走,女主牛每次可走在地图范围内的四个格点,问女主牛至少得走多少歩才能安全。 分析:这个题目至少,明显是bfs,但又和以前的bfs不一样,唔。。。后来看了别人的结题报告才明白要自己够遭地图,先构建

Na_OH的博客 530

【和小安一起刷题】POJ3669 Meteor Shower ----广度优先搜索(BFS)

01、题目描述 小伙伴们大家好,这里是和 【和小安一起刷题 】 系列栏目,今天我们要解决的是一道广搜题目——POJ3669 Meteor Shower。在解决题目前,你需要知道BFS的基本框架和C++< queue >库的简单使用。 题目链接: POJ3669 Meteor Shower. 题目描述:一场流星雨即将袭来,流星会对每个击中的地方以及其周围(上下左右四格)造成破坏。小明开始时位于(0, 0)位置,准备逃到一处不会被袭击到的地方(小明只能在第一象限内移动)。已知每移动1个单位长度需要1

一枝之栖 355

POJ 3669 Meteor Shower

POJ 3669题目大意: Bessie知道接下来会有一场流星雨,流星雨撞击地面时会爆炸,爆炸影响的范围除了撞击点还有与该点直接相连的4个点,比如撞击坐标是(X,Y),那么以下(X+1,Y),(X-1,Y),(X,Y-1),(X,Y+1)都会受到影响,而且这些地点之后就不能有人在上面。Bessie想要逃离这场流星雨,现在知道有M颗流星将在300*300的区域内撞击地面,而且还知道这M颗流星撞击的

kornberg_fresnel的博客 581

BFS搜索:POJ No 3669 Meteor Shower

BFS搜索:POJ No 3669 Meteor Shower #include <iostream> #include <cstring> #include <queue> #include <cstdio> #include <cstdlib> #include <...

豆子 186

DFS和BFS易错点记录——POJ 3669Meteor Shower

记录一下错误点:判重必须立即判重,而不是等到使用的时候再判重 刚刷了一道题,一直超时,找了很久bug才找到 在BFS中,插入队列后就必须立即判重,如果在退出队列后再判重,期间会有很多次重复插入,导致超时,DFS同理   Meteor Shower Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 68...

ACMer的知识记录 411

Meteor Shower POJ - 3669

Meteor Shower POJ - 3669 Bessie hears that an extraordinary meteor shower is coming; reports say that these meteors will crash into earth and destroy anything they hit. Anxious for her safety, she vo...

Kobe_LBJ的博客 320

POJ3669-Meteor Shower

这是一道典型宽搜的题。 题目的注意点有很多: 300*300是流星的陨落范围,不是地图的大小。因此302是绝对的安全区域。 同一位置可能会有许多流星,这是应选择最早的那个进行状态标记。 t的范围是[0,1000],闭区间。所以存在刚开始就死在原点的可能性。(太惨了....) 同一队列中不同元素的时间可能是不同的,不能一概而论。 已访问过的点不必再访问。 #include #in

Collider 517
上一篇: CodeForces 141B - Hopscotch
下一篇: POJ 1979 - Red and Black(深搜)
coco430
博客等级 码龄14年 9粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值