BZOJ 2131 免费的馅饼(DP,二维偏序问题 / 旋转坐标轴转化问题)【BZOJ 修复工程】

本文介绍了一个名为"免费馅饼"的游戏,玩家需要在舞台上接住下落的馅饼以获得最高分数。通过动态规划(DP)和二维偏序问题的解决策略,可以优化解决方案,达到O(n log n)的时间复杂度。文章提供了问题描述、输入输出格式,并解释了如何利用树状数组来维护满足条件的最优值进行DP转移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整理的算法模板合集: ACM模板

点我看算法全家桶系列!!!

实际上是一个全新的精炼模板整合计划


题目链接

https://hydro.ac/d/bzoj/p/2131

hydro 的 BZOJ 修复工程 !(我也去领了一点题慢慢修着玩,这题就是我修的嘿嘿嘿)

题目描述

SERKOI 最新推出了一种叫做 “免费馅饼” 的游戏:游戏在一个舞台上进行。舞台的宽度为 w w w​​ 格(从左到右依次用 1 ∼ w 1\sim w 1w​ 编号),游戏者占一格。开始时游戏者可以站在舞台的任意位置,手里拿着一个托盘。下图为天幕的高度为 4 4 4 格时某一个时刻游戏者接馅饼的情景。

在这里插入图片描述

游戏开始后,从舞台天幕顶端的格子中不断出现馅饼并垂直下落。游戏者左右移动去接馅饼。游戏者每秒可以向左或者向右移动一格或两格,也可以以站在原地不动。

当馅饼在某一时刻恰好到达游戏者所在的格子中,游戏者就收集到了这块馅饼。当馅饼落在一个游戏者不在的格子里时该馅饼就消失。

写一个程序,帮助我们的游戏者收集馅饼,使得所收集馅饼的分数之和最大。

输入格式

第一行是用空格隔开的两个正整数,分别给出了舞台的宽度 w w w 和馅饼的个数 n n n

接下来 n n n 行,每一行给出了一块馅饼的信息。由三个正整数组成,分别表示了每个馅饼落到舞台上的时刻 t i t_i ti,掉到舞台上的格子的编号 p i p_i pi,以及分值 v i v_i vi

游戏开始时刻为 0 0 0 。输入文件中同一行相邻两项之间用一个空格隔开。输入数据中可能存在两个馅饼的 t i t_i ti p i p_i pi 都一样。

输出格式

一个数,表示游戏者获得的最大总得分。

输入样例

3 4
1 2 3
5 2 3
6 3 4
1 1 5

输出样例

12

数据规模与约定

对于 100 % 100\% 100% 的数据, 1 ≤ w ≤ 1 0 8 1\le w\le 10^8 1w108 1 ≤ n ≤ 1 0 5 1\le n \le 10^5 1n105 1 ≤ t i ≤ 1 0 8 1\le t_i\le 10^8 1ti108 1 ≤ p i ≤ w 1\le p_i\le w 1piw 1 ≤ v i ≤ 1000 1\le v_i\le 1000 1vi1000

Solution

比较简单的一道题。

显然考虑 DP 。

f [ i ] f[i]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁凡さん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值