Help Jimmy POJ - 1661 dp 离散化

Windows部署OpenClaw报错不断?这篇环境配置指南帮你解决难题 想在Windows上部署OpenClaw却频频报错?🔧 本文详细梳理了OpenClaw部署必需环境的安装步骤和官方下载地址 📦,提供完整的验证清单和常见问题排查方法,帮你一次性搞定所有环境配置,顺利部署OpenClaw ✅ 阅读详情

题解

他在到达平台左端点或者右端点之前都会保持一个状态不变化 所以只需要计算断点值 离散化端点值(我把左端点+1和右端点-1也离散化了更稳妥一些)
d[i]表示到达i这个位置的最短时间 p[i]表示到达i这个位置的最低高度 平台按照高度排序 如果高度差不会摔死则从上向下转移
d[左端点] = min(d[左端点], d[k] + h[i] - h[j] + k- 左端点) i为转移的平面 j为当前平面k从[左端点, 右端点] 右端点类似

AC代码

#include <vector>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
typedef long long ll;

const int INF = 0x3f3f3f3f;
const int MAXN = 1e3 + 10;
int d[MAXN << 1], p[MAXN << 1]; //到i这个位置 最短时间 最低高度
vector<int> dz;

struct node
{
	int x, y, h;
	bool operator < (const node &oth) const
	{
		if (this->h != oth.h)
			return this->h > oth.h;
		if (this->x != oth.x)
			return this->x < oth.x;
		return this->y < oth.y;
	}
}a[MAXN];
int Discrete(int v)
{
	return lower_bound(dz.begin(), dz.end(), v) - dz.begin();
}
int main()
{
#ifdef LOCAL
	freopen("C:/input.txt", "r", stdin);
#endif
	int T;
	cin >> T;
	while (T--)
	{
		dz.clear();
		dz.push_back(-INF);
		int n, x, y, mx;
		cin >> n >> x >> y >> mx;
		for (int i = 0; i < MAXN << 1; i++)
			d[i] = INF, p[i] = y;
		for (int i = 1; i <= n; i++)
			scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].h), dz.push_back(a[i].x), dz.push_back(a[i].x + 1), dz.push_back(a[i].y), dz.push_back(a[i].y - 1);
		dz.push_back(x); //插入起点
		sort(a + 1, a + n + 1);
		sort(dz.begin(), dz.end());
		dz.erase(unique(dz.begin(), dz.end()), dz.end());
		d[Discrete(x)] = 0; //起点为0
		for (int i = 1; i <= n; i++)
		{
			int l = Discrete(a[i].x), r = Discrete(a[i].y);
			x = y = INF;
			for (int j = l; j <= r; j++) //遮挡范围
			{
				if (p[j] - a[i].h <= mx)
				{
					x = min(x, dz[j] - a[i].x + p[j] - a[i].h + d[j]);
					y = min(y, a[i].y - dz[j] + p[j] - a[i].h + d[j]);
				}
				d[j] = INF, p[j] = a[i].h; //刷新高度
			}
			d[l] = x, d[r] = y;
		}
		int ans = INF;
		for (int i = 0; i < MAXN << 1; i++)
			if (p[i] <= mx) //小于等于mx才可以计算
				ans = min(ans, d[i] + p[i]);
		cout << ans << endl;
	}

	return 0;
}
uniapp:实现APP获取陀螺仪数据、加速传感器、线性加速传感器,uniApp实时监听陀螺仪【XYZ】数据及停止监听与资源释放等功能示例源码,根据需求做功能(完美兼容Android安卓、苹果ios) uniapp陀螺仪,uniapp加速传感器,uniapp线性加速传感器,APP陀螺仪数据,uniapp app 端获取陀螺仪数据示例代码,手机中获取陀螺仪的数据,uniApp实时获取陀螺仪xyz数据,android陀螺仪方向,获得陀螺仪传感器,处理传感器数据,停止监听与资源释放,Android使用陀螺仪,uniapp苹果ios陀螺仪,uni-app设备之(加速计,罗盘,陀螺仪)插件安卓/IOS APP提供了获取陀螺仪数据的能力,手机陀螺仪传感器获得手机自身旋转的角度,陀螺仪获取旋转角度,陀螺仪、加速度传感器 阅读详情

相关推荐

DataWorks数据安全治理最佳实践

DataWorks基于数据安全治理的常见思路,针对资产梳理、技术体系建设和运营体系建设,提供了一系列数据安全产品能力,您可通过“基础防护建设、数据安全防护措施及策略增强建设、数据安全持续运营”三个阶段在DataWorks上落地数据安全治理项目。参考本文启动数据安全治理项目前,建议您先了解DataWorks数据安全产品相关能力了解DataWorks数据安全产品能力后,您可参考如下三个阶段在DataWorks上落地数据安全治理项目。

soso1968的博客 1438

hdu6447(树状数组+离散化优化dp)

YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2161    Accepted Submission(s): 809 Problem Description YJJ is a salesman who...

yu121380的博客 460

拯救者R7000P(2021)装双系统Ubuntu20.04 解决联发科MT7921无线网卡在Ubuntu中不能联网

拯救者R7000P(2021)装双系统Ubuntu20.04/Ubuntu18.04 电脑配置:联想拯救者R7000P CPU:AMD R7-5800H GPU:RTX3060-6G 内存:16GB 固态:500G(原装)+500(加装) 1.做系统盘(本文以Ubuntu20.04为例) 1.下载Ubuntu20.04镜像 直接去Ubuntu官网或者一些国内的镜像去下载都可以,这里给出一个网址https://ubuntu.com/download/desktop,根据需要下载自己学要的Ubuntu版本,后缀

qq_41108639的博客 1万+

数位DP(离散化+技巧)

题目链接 从1到9的最小公倍数是2520,每一个数被自己的非零位整除,则一定为2520的某一个因子整除,因此求和可以直接对2520取模,这样不影响结果,从1到2520,所有的最小公倍数只有48个,因此可以离散化一下,后面就是数位dp的过程了。dp[pos][presum][index[prelcm]]表示到了第几位,到目前为止和为多少,到目前为止的lcm值。 #include #include

nucshiyilang的博客 460

从0到1做AI漫剧:即梦+豆包+剪映+红果全流程实战

AI视频生成正在重塑内容创作的生产方式,它让原本高门槛的影视制作,变成了一条由文本、画面、剪辑与分发环节协同的流水线。理解其底层原理,在于将大模型的语义理解、图像生成与视频合成能力,与工程化的流程管理相结合,从而实现从创意到成片的自动化输出。这种技术的价值,不仅体现在降低制作成本,更在于让个人创作者能够独立完成高质量短剧,并快速迭代内容。在短剧、短视频、广告营销等场景中,利用即梦生成画面、豆包编写剧本、剪映完成剪辑、红果进行分发的组合,已成为一种被广泛验证的实践路径。本文聚焦AI漫剧制作,从环境准备、分镜设

weixin_34072637的博客 385

ROS2进程内通信:零拷贝Intra-Process原理与实战

Intra-Process通信是ROS2实现低延迟节点间数据交换的核心机制,其本质是通过C++17智能指针与零拷贝共享内存,在同一进程内绕过序列化、系统调用和上下文切换。相比传统DDS跨进程通信,它将`geometry_msgs::Twist`类消息延迟从42μs降至0.8μs,显著提升机器人实时控制性能。该技术并非自动启用,需满足同执行器、QoS严格匹配、内存所有权明确三大约束,适用于机械臂控制、视觉SLAM、图像处理流水线等对端到端延迟敏感的场景。本文聚焦ROS2原生Intra-Process通讯的原理

weixin_30619101的博客 364

过河(dp+离散化)

过河 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是S到T之间的任意正整数(包括S,T)。当青蛙跳到或跳过坐标为L的点时,就算青蛙已经跳出了独木桥。 题目给出独木桥的长度L,青蛙跳跃的距离范围S

Erya Programming learning 785

计算机控制液压同步顶升系统,PLC四点多点同步顶升系统,同步液压顶升系统

PLC同步顶升系统系统可分为5个部分:液压泵站、PLC计算机控制系统、液压终端、位移压力检测与人机界面操作系统,位移同步精度1mm,同步控制点数:4,8,12,16,20,40,80,99;产品特点:高速置零、低速顶升,升降速度可以任意控制;液压千斤顶内置式(或外置)位移、压力传感器、均载阀,保证了顶升系统在恶劣工作环境下的高可靠性;均载阀的过载保护功能,避免了多缸顶升时常见的胀缸事故;先进的进油...

weixin_30093045的博客 1434

离散化+dp+线段树

YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 729    Accepted Submission(s): 204   Problem Description YJJ is a salesman wh...

shaohang_的博客 543

全球SAR卫星大盘点与回波数据处理专栏目录

本专栏将详细介绍各国各地区的SAR卫星的特点和性能,以及SAR回波数据的处理方法和技巧。主要介绍民用和商用SAR卫星,帮助你了解商业SAR卫星的最新动态和技术,MATLAB代码将全部开源。以下是专栏目录,持续更新中。

3165

69、SAP数据库归档重做日志备份策略与工具详解

本文详细解析了SAP数据库归档重做日志备份的重要性及策略,介绍了SAP提供的备份工具brarchive及其配置和使用方法,探讨了BRBACKUP与BRARCHIVE的联合运行、一致在线备份、备用数据库备份场景以及备份策略的综合应用与优化。此外,还分析了备份过程中常见问题的解决方法、备份监控与评估流程、与第三方备份解决方案的集成方式,以及未来备份技术的发展趋势和应对策略。通过合理运用这些策略和工具,可以有效保障SAP数据库的安全性和可恢复性。

peace的博客 136

P1370 Charlie的云笔记序列(dp&离散化)

P1370 Charlie的云笔记序列(dp&离散化) 考虑dp,令fif_ifi​ 表示r=ir=ir=i的答案之和。 若不存在重复数字,则fi=2×fi−1+2f_i=2\times f_{i-1}+2fi​=2×fi−1​+2。 2×fi−12\times f_{i-1}2×fi−1​ 就是选和不选aia_iai​ 添加到fi−1f_{i-1}fi−1​ 构成子序列。 222就是[i,i][i,i][i,i]构成的答案,空序列和本身。 然后对于去重,我们这样考虑:kkk为aia_iai​上一次

Harris-H的博客 421

Google Earth Engine 实现图像随机森林分类_遥感分类全流程详解

本文将通过一段完整的GEE代码,逐步讲解如何利用Sentinel-2影像和随机森林算法,实现地表覆盖分类。代码包含等关键步骤,适合遥感入门学习!

国科大硕士在读,分享Python/GEE/Matlab/R专业代码实践,涵盖数据分析、算法开发与应用技巧等,以代码会友。 916

POJ 1661 Help Jimmy (DP)

"Help Jimmy" 是在下图所示的场景上完成的游戏。 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超

swust_Three的博客 432

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

POJ 1661 Help Jimmy(DP)

地址:http://poj.org/problem?id=1661 解法:这题说穿了还真没什么难的,将所有线段按高度排序,然后dp求解一个lefttime[i],righttime[i]分别表示从i线段左端跳下去和右端跳下去的最短落地时间(如果会摔死直接返回MAX),既然保证有解也就不用判断MAX了。 PS:为什么要把这题贴出来呢?因为我昨天晚上居然傻逼呵呵的先用线段树去求每个端点的下一个线段

466

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【poj1661】Help Jimmy

Description "Help Jimmy" 是在下图所示的场景上完成的游戏。  场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。  Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。

zyf2000 677

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

一道莫名其妙的离散化dp

青蛙 (frog.pas/c/cpp) 【问题描述】 在韩国,成古利(一种青蛙)的顽皮是出名的,它总是在晚上到稻田上乱逛,并踩平水稻。 这种青蛙总是以直线跳过稻田,且每个跳跃的长度都是一样: 如下 Figure-1 是一片稻田,Figure-2 则是青蛙的路径,黑色的点表示被踩平的水稻 在晚上,有可能许多青蛙跳到你的稻田中,如 Figure-3 就是三只青蛙跳过的路径(注 意,有可能

CRZbulabula的博客 816

过河(DP+离散化)

思路:dp[i]表示从跳到点i所需的最小次数。dp[i]=min(dp[i],dp[i-j]+vis[i-j]),vis[i-j]表示i-j这个位置有没有石头。因为len是1e9肯定会爆,所以要离散化,每个石头的位置和终点位置,当2个石头相距大于t的时候,那么那么任意的距离都可以表示为d%t+t #include <cstdio> #include <cstring> #include <algorithm> #include <set> #include&.

Ray.C.L的博客 501

poj3666(DP+离散化)

题目链接:http://poj.org/problem?id=3666 思路: 看了讨论区说本题的数据比较弱,只需要考虑不减序列即可,比较懒,所以我也只写了这一部分的代码,思路都一样,能AC就行了。 首先要想明白一点,就是将每一个elevation更新后的值一定是原来存在的,因为更新一个elevation最好是与前一个相等,要么与后一个相等,可以从贪心角度去想,这里要先明白,很重要。所以我们...

weixin_33812433的博客 208

河南省第九届ACM程序设计竞赛 部分题解

A 表达式求值 <逆波兰> #include <stdio.h> #include <bits/stdc++.h> #define fst first #define sed second using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const ll LINF =...

CaprYang的博客 1325

Codeforces Round #553 (Div. 2) 题解

题目链接 A. Maxim and Biology 取连续一段改为ACTG的最小代价 #include <stdio.h> #include <bits/stdc++.h> #define fst first #define sed second using namespace std; typedef long long ll; const int INF = 0x3f...

CaprYang的博客 1201

河南省第十一届ACM大学生程序设计竞赛 部分题解

题目链接 A 计划日 #include <stdio.h> #include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const ll LINF = 0x3f3f3f3f3f3f3f3f; bool leapyear(int y) { ...

CaprYang的博客 1165

郑州轻工业大学“CCPC2019-河南省赛”选拔赛(2) 部分题解

题目链接 A 火柴棒等式 <暴力> #include <stdio.h> #include <bits/stdc++.h> #define fst first #define sed second using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const ll L...

CaprYang的博客 1075

“卓见杯”第五届CCPC中国大学生程序设计竞赛河南省赛 题解

题解 使用树状数组查询某个范围内的数值的数量,因为数值比较大需要先进行离散化处理。 使用DFS遍历整棵树,当到达某个节点时首先查询区间[a[i]-m, a[i]+m]范围内的数字数量记为last,表示还没到当前子树时已有的数量。 将当前节点值加进梳妆数组,因为自身到自身也算。进行递归,回溯后再次查询区间[a[i]-m, a[i]+m]记为now,表示增加了自身子树之后的数量。 最后每个点的答案f[...

CaprYang的博客 1040

Codeforces Round #552 (Div. 3) 题解

题目链接 A. Restoring Three Numbers #include <stdio.h> #include <bits/stdc++.h> #define fst first #define sed second using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; con...

CaprYang的博客 964

You Are the One HDU - 4283 区间dp

题解 题目大意,一队人排队上台表演,每个人有个值a[i],他第k个上场就会有a[i]*(k-1)的不愉快度,现在有个栈可以调整上台顺序,对于每个人可以选择进栈或者直接上台,在栈中的人可以随时上台,问不愉快度的最小总和 区间dp求解,d[i][j]表示区间[i, j]第i个前面没有人的情况下的最小代价,也就是只有区间[i, j]这些人任意安排顺序上场的最小代价 对于每个区间考虑将第一个人进栈,等后面...

CaprYang的博客 769
上一篇: Common Subsequence POJ - 1458 dp lcs
下一篇: Longest Ordered Subsequence POJ - 2533 dp lis
CaprYang
博客等级 码龄8年 147粉丝 277原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值