当前位置: 首页 > news >正文

题解:洛谷 P2285 [HNOI2004] 打鼹鼠

【题目来源】

洛谷:P2285 [HNOI2004] 打鼹鼠 - 洛谷

【题目描述】

鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个 \(n\times n\) 的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果 \(i\) 时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的话,那么这个鼹鼠就会被机器人打死。而机器人每一时刻只能够移动一格或停留在原地不动。机器人的移动是指从当前所处的网格移向相邻的网格,即从坐标为 \((i,j)\) 的网格移向 \((i−1,j),(i+1,j),(i,j−1),(i,j+1)\) 四个网格,机器人不能走出整个 \(n\times n\) 的网格。游戏开始时,你可以自由选定机器人的初始位置。

现在知道在一段时间内,鼹鼠出现的时间和地点,请编写一个程序使机器人在这一段时间内打死尽可能多的鼹鼠。

【输入】

第一行为 \(n,m(n\le 1000,m\le 10^4)\),其中 \(m\) 表示在这一段时间内出现的鼹鼠的个数,接下来的 \(m\) 行中每行有三个数据 \(time,x,y\) 表示在游戏开始后 \(time\) 个时刻,在第 \(x\) 行第 \(y\) 个网格里出现了一只鼹鼠。\(time\) 按递增的顺序给出。注意同一时刻可能出现多只鼹鼠,但同一时刻同一地点只可能出现一只鼹鼠。

【输出】

仅包含一个正整数,表示被打死鼹鼠的最大数目。

【输入样例】

2 2	     
1 1 1
2 2 2

【输出样例】

1

【解题思路】

image

【算法标签】

《洛谷 P2285 打鼹鼠》 #动态规划,dp# #递推# #最短路# #各省省选# #湖南# #2004#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 10005;  // 定义最大事件数量// 事件结构体
struct Node 
{int ti;      // 事件发生时间int x;       // 事件x坐标int y;       // 事件y坐标int kill=1;  // 到该事件时能获得的最大击杀数(初始化为1)
} a[N];          // 存储所有事件int n, m;        // n: 地图大小(未使用),m: 事件数量
int ans;         // 最终结果(最大击杀数)int main()
{// 输入地图大小和事件数量cin >> n >> m;// 输入每个事件的详细信息for (int i = 1; i <= m; i++) {cin >> a[i].ti >> a[i].x >> a[i].y;int maxn = 0;  // 记录前面事件能带来的最大击杀数// 检查前面所有事件是否能转移到当前事件for (int j = 1; j < i; j++) {// 判断条件:// 1. 前面事件时间早于当前事件// 2. 时间差足够移动到当前事件位置if (a[j].ti < a[i].ti && a[i].ti - a[j].ti >= abs(a[i].x - a[j].x) + abs(a[i].y - a[j].y)) {maxn = max(maxn, a[j].kill);  // 更新最大击杀数}}a[i].kill += maxn;      // 当前事件击杀数 = 1 + 前面最大击杀数ans = max(ans, a[i].kill);  // 更新全局最大击杀数}// 输出结果cout << ans;return 0;
}

【运行结果】

2 2
1 1 1
2 2 2
1
http://www.jsqmd.com/news/397079/

相关文章:

  • 题解:洛谷 P1020 [NOIP 1999 提高组] 导弹拦截
  • 携程任我行礼品卡回收实操步骤 - 京顺回收
  • 研究生开题答辩前如何确保论文AI率合格?导师不会告诉你的实操指南
  • neovim配置python插件支持环境 —— Pynvim 环境搭建 —— Pynvim安装
  • 期刊投稿也要查AI了?学术期刊AIGC检测现状与对策
  • Gemini 3.1 Pro在这个平台便宜到离谱,编程能力竟然超过GPT-5.2和Opus 4.6
  • MySQL几种count比
  • 2026年广州AI获客服务商赋能实体经济标杆企业TOP10榜单:技术与产业深度融合的领航者 - 野榜精选
  • 在K8s集群中部署Traefik并验证Python HTTP服务
  • 深入浅出 K8s 内外部通信:全场景方案解析与生产实践
  • 2026年热压/烫金/丝印皮牌工艺行业优质供应商TOP10推荐:聚焦全链条服务能力,助力品牌价值升级 - 野榜精选
  • 深入解析Nginx反向代理多服务时静态资源路径冲突的根源与解决方案
  • 2026年,探寻有抗衰老功效的保健品,保健品/抗衰老片,保健品食品选哪家 - 品牌推荐师
  • 2026年2月无管道新风机品牌TOP10榜单:技术创新与场景适配性双维度评选 - 野榜精选
  • 对数额外空间的森林判定
  • OpenJDK和Oracle JDK有什么区别和联系?
  • 探寻2026可长期服用能抗疲劳的保健品,抗衰老片/保健品,保健品产品哪家好 - 品牌推荐师
  • Linux 多线程编程入门:线程栈、TLS、互斥锁与条件变量详解
  • C++的多态是如何体现的?一篇文章搞懂C++虚函数机制与常见问题
  • 【Linux】sudo 命令提升权限的使用技巧
  • HTTP 协议发展详解:从 HTTP/1 到 HTTP/3
  • 大模型应用开发:从选型到部署的核心考量
  • 探索ABAQUS刀盘切削竹材有限元模型
  • Prompt,除了使用外,你了解其核心原理么?
  • GEO崛起:AI时代品牌信息优化的新策略
  • php字符串变量传递到js注意事项
  • 前端小白别慌:30分钟搞懂HTML表格结构+属性全清单(附避坑指
  • 《信号与系统》信号与系统、AI系统、软件系统、电路系统-模拟、电路系统-数字、通信系统-发送、通信系统-接收、图像处理、音频处理、光学变换系统、自动控制系统、人体系统、企业系统的共性
  • 付费 AI 用户和免费用户之间,究竟差了什么?
  • 2026年值得收藏的 PNG 转 JPG 在线网站推荐(支持批量转换)