poj 3669

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

bfs的题
因为每次都模拟流行砸下来,tle一次,(应该标记每个点被砸的时间)
因为没有标记走过的点不能再走,tle了一次,(之前认为走过的点应该可以再走,其实仔细想的话,走过的点一定是不能再走的)
因为没有提前判断必死的情况,tle一次,
因为题上说0 ≤ Xi ≤ 300; 0 ≤ Yi ≤ 300,所以人能走的点的范围一个时(0 ≤ Xi ≤ 301; 0 ≤ Yi ≤ 301),人能走的范围最少应该比彗星的范围多1,不然人必死。而我实际代码写成了

if (temp.x < 0 || temp.x > 300 || temp.y < 0 || temp.y > 300)
				continue;

wa了一次

最终代码

#include <iostream>
#include <cstdio>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <cstring>
#include <queue>
#include <set>
#include <vector>
#include <map>
#include <algorithm>
#include <cmath>
#include <stack>
#include <stdlib.h>
#include <stdio.h>

#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ll long long
#define ull unsigned long long
#define uint unsigned int
#define l(x) x<<1
#define r(x) x<<1|1
#define ms(a,b) memset(a,b,sizeof(a))

using namespace std;

struct node {
	int x, y, times;
	node(int xx,int yy) : x(xx), y(yy), times(0) {}
	node() : x(0), y(0), times(0) {}
};

int mmap[333][333],vis[333][333];
int m,a,b,c;
int dir[4][2] = { 0,1,0,-1,1,0,-1,0};

void setm(int x, int y,int now) {
	mmap[x][y] = min(mmap[x][y], now);
	if (x > 0) mmap[x - 1][y] = min(mmap[x - 1][y], now);
	if (y > 0)  mmap[x][y - 1] = min(mmap[x][y - 1], now);
	if (x < 301)  mmap[x + 1][y] = min(mmap[x + 1][y], now);
	if (y < 301)  mmap[x][y + 1] = min(mmap[x][y + 1], now);
}

int bfs() {
	queue<node> q;
	node now;
	node temp;
	q.push(now);

	while (!q.empty()) {
		now = q.front();
		q.pop();

		temp = now;
		temp.times++;
		for (int j = 0; j < 4; j++) {
			temp.x = now.x + dir[j][0];
			temp.y = now.y + dir[j][1];
			if (temp.x < 0 || temp.x > 301 || temp.y < 0 || temp.y > 301)
				continue;
			if (vis[temp.x][temp.y] == 1)
				continue;
			vis[temp.x][temp.y] = 1;
			if (mmap[temp.x][temp.y] == INF)
				return temp.times;
			if (temp.times < mmap[temp.x][temp.y])
				q.push(temp);
		}
	}

	return -1;
}

int main() {
	ms(mmap, INF);
	ms(vis, 0);
	scanf("%d", &m);
	for (int i = 0; i < m; i++) {
		scanf("%d%d%d", &a,&b,&c);
		setm(a, b,c);
	}

	if (mmap[0][0] == 0) {
		printf("-1\n");
	}
	else {
		printf("%d\n", bfs());
	}

	return 0;
}
RTOS任务调度原理:高优先级任务为何在低优先级任务执行时无法响应 实时操作系统(RTOS)的核心在于其确定性的任务调度机制,它通过优先级抢占确保关键任务及时执行。其基本原理是调度器仅在特定调度点(如任务主动阻塞、中断退出时)运行,比较就绪态任务的优先级并切换上下文。这一机制的技术价值在于为嵌入式系统提供可预测的响应时间,广泛应用于工业控制、汽车电子和物联网设备等对实时性要求高的场景。当低优先级任务执行**长时间非阻塞运算**且无中断发生时,调度器无法被触发,导致高优先级任务虽处于就绪态却无法获得CPU,造成系统响应延迟。理解**任务状态机**与调度点,是优化实时性、避免此 阅读详情

相关推荐

VTK基础教程(1)- vtkPolyData 介绍

目录 VTK的编译与环境搭建 VTK一般渲染流程 VTK数据类型-vtkPolyData 使用vtk自带的多边形数据 使用自己创建的数据 添加顶点颜色 添加面颜色 VTK的编译与环境搭建 这部分目前已经有了大佬做了成熟的傻瓜式配置,大家可以参考这篇文章:VTK+VS2019(或其他版本均可) 傻瓜式一站式 配置_Nancy_fairy的博客-优快云博客_vs2019 vtk VTK一般渲染流程 这部分的介绍也很多,大家可以参考这篇文章:VTK笔记-了解VTK_黑山老妖的博客.

qq_35769071的博客 9054

POJ3669——BFS经典

典例POJ3669:http://poj.org/problem?id=3669 题意:有n个点,每个点在一个特定的时刻 t 会被小星星砸中,其上下左右四个点也会受连累,依次输入n个点的横纵坐标及被砸的时间。现在从原点出发,问最少经过多久才能安全?若不能逃脱则输出-1 分析:建立一个记录被砸时间的数组bt[ ][ ],输入数据时,先初始化所有的点为INF。再建立二维数组vis[ ][ ]监视每

chuck001002004的博客 2340

Mcgs 屏幕Modbus RTU通讯调试

昆仑通态屏幕作为Modbus Master 与 Modbus Slave通过RS485接口实现通信的调试记录

madao1234的博客 5569

POJ 3669 Meteor Shower(BFS)

题目链接:POJ3669 一道BFS算法题,不过有很多坑 1. 第一象限(然而却是包括了两条坐标轴上的点 2. 可以留在原地不动,但不能走回头路(没必要) 3. 虽然很多人都说范围有问题,但题面上给出的是流星砸落的范围,所以出现302并没有问题(emmm 4. 一个坐标可以被砸很多次2333 5. 原点可能在time=0的时候就被砸了(哭关于算法 首先处理坐标,记录每一个坐标被摧毁的(

LFhase‘s Blog 435

汽车TARA分析实战:从威胁建模到安全需求落地的完整指南

在汽车电子电气系统开发中,威胁分析与风险评估(TARA)是确保功能安全与网络安全的核心方法论。其原理在于通过结构化的流程,系统性地识别资产、分析威胁场景并评估风险,旨在将安全理念前置,从设计源头规避风险。这一过程的技术价值在于将模糊的安全担忧转化为可量化、可追溯的工程需求,从而指导资源精准投放,是符合ISO 26262和ISO/SAE 21434标准要求的关键实践。其应用场景贯穿智能汽车从概念设计到系统开发的各个阶段,尤其对于涉及自动驾驶、智能座舱、车云通信等复杂功能的域控制器开发至关重要。本文聚焦于TAR

weixin_42706667的博客 304

Challenge 4 - OSCP A

在c盘下发现一个windows.old,在里面可以找到SYSTEM和SAM文件,下载到本地,利用samdump2解密发现没解出来,再来试试pwdump.py(https://github.com/CiscoCXSecurity/creddump7)得到压缩包密码bludecode,解压之后发现一个比较特殊的文件configuration.php,里面有两个类似密码的字符串。登录之后在/opt/backups/下发现几个特殊文件,其中sitebackup3.zip是个正常的压缩包。但是这个压缩包是有密码的。

羽的博客 5783

POJ-3669-Meteor Shower

其实不难的一个BFS题目,写了好久~~最后发现是搜索完后流星还没攻击完的状况忽略了~该死! 代码: #include #include #include #include #include using namespace std; const int maxn=405; const int inf=1<<29; struct Node { int x; int y; i

z309241990的专栏 2625

Labview界面多按钮控件的一种处理方法

当界面中存在多个按钮控件时候,此时如果逐个为每个控件添加事件条件则会显得较为麻烦,此处提供了一种对多控件进行批量处理的方法

miracleis的博客 2702

POJ 3669 广度优先搜索

题意:巨大流星雨即将袭来。每个流星会对击中的地方以及周围(上下左右四格)造成破坏。Bessie开始时位于(0, 0)位置,并希望逃到一处不会被袭击到的地方(在第一象限内)。已知每移动一格需要1个时间单位,被流星破坏后的地方不能再进入。给出M个流星在T时刻击中的地方(X, Y),问Bessie能否逃到安全的地方,若能输出最短时间,否则输出-1。 分析:依旧是迷宫问题。不同的是,需要自己构...

dieseng6571的博客 280

OpenClaw入门必装Skills(附使用场景)

很多同学安装了OpenClaw后,但却不会使用,就相当于你只是拥有了一副强大的躯干,却没有给它装上能够灵活执行任务的“手脚”和负责思考决策的“大脑插件”——Skills。没有这些核心能力的支撑,OpenClaw只是一个“空壳”,无法真正应用到实际业务场景中,更谈不上提升效率或解决复杂问题。所以,安装只是第一步,要真正让OpenClaw“活”起来,为我们所用,就需要给OpenClaw安装各种Skills,这个过程就是养虾的过程。

十二测试录 3224

uniapp [微信小程序] - 详解微信小程序端接入mqtt全流程及示例源码教程,uniApp微信小程序端如何接入MQTT插件并实现连接/断开+发布订阅+消息队列+离线重连等各种示例代码(开箱即用)

uniapp微信小程序接入MQTT,uniapp中使用mqtt,uniapp 微信小程序端接入mqtt示例代码教程,适用于微信小程序的MQTT插件,uniapp开发微信小程序连接mqtt,uniApp微信小程序接入MQTT协议,uniapp vue3微信小程序使用MQTT的小例子接入流程,使用uniapp开发小程序接入mqtt,如何在uniapp项目中使用mqtt,uniapp mqtt的使用示例,mqtt连接报错,如何在项目里集成mqtt,Mqtt协议,主动连接mqtt,订阅消息,实现发布,订阅和接收消息

🏆 前端领域优质创作者 2881

poj3669 流星雨啊!

poj3669这道题我看了好像两三天的样子_(:з」∠)_,迷之TLE,迷之MLE,迷之WA_(:з」∠)_.后来发现,问题有点儿多.一共三个问题, 一是读入流星的时候,没有考虑前面流星对后面流星的影响. 二是:小主人公可以跑到300*300的格子外面. 三是:走路的时候,忘了判断路是否已经走过_(:з」∠)_. #include #include #include using nam

libazzu 522

单细胞转录组数据分析中的基因ID注释转换问题:如何解决才能注释所有的UMIcount数据?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1126

【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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

POJ 3669 bfs+预处理

POJ3669 Meteor Shower Time Limit:1000MS Memory Limit:65536K Total Submissions:30551 Accepted:7861 Description Bessie hears that an extraordinary meteor shower is coming; rep...

CC_且听风吟丶的博客 487

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ3669解题报告(bfs)

POJ3669http://poj.org/problem?id=3669 很明显是一道bfs的题目 由于陨石的降临具有时刻性,所以地图是随时间变化的, 所以可以使用结构体来存储陨石下落的时刻以及位置以便更新地图,然后预处理出安全位置(把会被轰炸的区域设置为2,把不会被轰炸的区域设置为1), (由于陨石的轰炸不具有蔓延性(如果是火灾的蔓延则具有蔓延性),所以可以直接利用for...

aiyuneng5167的博客 208

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Poj3669 meteor shower bfs

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

Na_OH的博客 530

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

poj 3669 (BFS)

题目链接:http://poj.org/problem?id=3669 这道题

乐观之奋斗者 776

poj 3669 BFS

思路还是不明朗,其实这题和迷宫的最短路径思路差不多,但是这题没有给出明显的边界条件,导致半天没有想明白,写的程序还是半天调试不过去,基础不扎实......keep moving ..... 粗略的想法:         预处理,把每个会被陨石雨破坏的坐标都用破坏时间表示出来,类似迷宫的最短路径的障碍,方便接下来的bfs判断,比如,在原点不需要动的情况或往回走的情况。 注意:

W. Charley 841

POJ 3669 Meteor Shower

POJ 3669 Meteor Shower

coding_sun的博客 358

BFS搜索:POJ No 3669 Meteor Shower

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

豆子 186

POJ 3669 Meteor Shower【BFS】

POJ 3669 去看流星雨,不料流星掉下来会砸毁上下左右中五个点。每个流星掉下的位置和时间都不同,求能否活命,如果能活命,最短的逃跑时间是多少? 思路:对流星雨排序,然后将地图的每个点的值设为该点最早被炸毁的时间 #include <iostream> #include <algorithm> #include <queue> #include...

weixin_30852451的博客 72

poj 3669 bfs水题预处理

//poj3669 m个星会在某个时间某一点坠落,同时它的四周都会被破坏,求从(0,0)最的短时间能走到一个绝对安全的地方 #include #include #include #include #include #include #define N 300+10 #define clr(a,b) memset(a,b,sizeof(a)) #define inf 0xfffffff using

u012515742的专栏 586

POJ 3669 Meteor Shower(bfs)

题目链接: http://poj.org/problem?id=3669 解题思路: 给m个坐标,分别会在不同的t时刻下流星雨,请求出最少需要多长时间才能到达安全的地方,被流星雨摧毁的地方不能再走了。。。 首先预处理,将流星出现的最早时间用vis数组标记,然后再用bfs搜索。。。注意数组要开到400多,不然会wrong。。。 AC代码: #include #include #i

piaocoder 686
上一篇: poj 3009 (dfs)
下一篇: poj 2718
FawkesLi
博客等级 码龄8年 21粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值