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

网站建设需求文案案例html情人节给女朋友做网站

网站建设需求文案案例,html情人节给女朋友做网站,积分商城平台,做网站多少钱_西宁君博优选一、题目链接 P10726 [GESP202406 八级] 空间跳跃 - 洛谷 二、解题思路 我们要对输入的挡板进行排序,按高度从高到低(从小到大)。 排序之后s和t都要更新。 struct Baffle {int l, r;int h;int id; } b[1005];void Sort() {sort(b 1, b 1 n…

一、题目链接

P10726 [GESP202406 八级] 空间跳跃 - 洛谷

二、解题思路

我们要对输入的挡板进行排序,按高度从高到低(从小到大)。

排序之后s和t都要更新。

struct Baffle {int l, r;int h;int id;
} b[1005];void Sort() {sort(b + 1, b + 1 + n, cmp);for (int i = 1; i <= n; i++) {if (b[i].id == os)s = i;if (b[i].id == ot)t = i;}
}

对于每个挡板,我们都计算出跳到它左端的最小用时跳到它右端的最小用时,因为要想继续跳到另一个挡板上,必须先到达出发挡板的左端或者右端再往下跳。

如图,要想从A到B,只有从左侧下从右侧下两种方式。

那么,我们把到板块i左端点的最短时间记为dp[i][0]

同理,我们把到板块i右端点的最短时间记为dp[i][1]

根据上方规则,我们可以推断出:

// 从右跳下
dp[j][0] = min(dp[j][0], dp[i][1] + b[i].h - b[j].h + b[i].r - b[j].l);
dp[j][1] = min(dp[j][1], dp[i][1] + b[i].h - b[j].h + b[j].r - b[i].r);
// 道理同上
for (int i = s; i <= t; i++) {// 从左跳下for (int j = i + 1; j <= t; j++) {if (b[i].l >= b[j].l && b[i].l <= b[j].r && b[i].h > b[j].h) {if (j == t)ans = min(ans, dp[i][0] + b[i].h - b[j].h);dp[j][0] = min(dp[j][0], dp[i][0] + b[i].h - b[j].h + b[i].l - b[j].l);dp[j][1] = min(dp[j][1], dp[i][0] + b[i].h - b[j].h + b[j].r - b[i].l);break;}}// 从右跳下for (int j = i + 1; j <= t; j++) {if (b[i].r >= b[j].l && b[i].r <= b[j].r && b[i].h > b[j].h) {if (j == t)ans = min(ans, dp[i][1] + b[i].h - b[j].h);dp[j][0] = min(dp[j][0], dp[i][1] + b[i].h - b[j].h + b[i].r - b[j].l);dp[j][1] = min(dp[j][1], dp[i][1] + b[i].h - b[j].h + b[j].r - b[i].r);break;}}}

三、完整代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;struct Baffle {int l, r;int h;int id;
} b[1005];int n, s, t,os,ot;bool cmp(const Baffle& a, const Baffle& b) {if(a.h != b.h)return a.h > b.h;return a.l < b.l;
}void Sort() {sort(b + 1, b + 1 + n, cmp);for (int i = 1; i <= n; i++) {if (b[i].id == os)s = i;if (b[i].id == ot)t = i;}
}int main() {cin >> n >> os >> ot;for (int i = 1; i <= n; i++)cin >> b[i].l >> b[i].r >> b[i].h, b[i].id = i;Sort();int dp[1005][2], ans = 0x3f3f3f3f;memset(dp, 0x3f, sizeof (dp));dp[s][0] = 0, dp[s][1] = b[s].r - b[s].l;for (int i = s; i <= t; i++) {// 从左跳下for (int j = i + 1; j <= t; j++) {if (b[i].l >= b[j].l && b[i].l <= b[j].r && b[i].h > b[j].h) {if (j == t)ans = min(ans, dp[i][0] + b[i].h - b[j].h);dp[j][0] = min(dp[j][0], dp[i][0] + b[i].h - b[j].h + b[i].l - b[j].l);dp[j][1] = min(dp[j][1], dp[i][0] + b[i].h - b[j].h + b[j].r - b[i].l);break;}}// 从右跳下for (int j = i + 1; j <= t; j++) {if (b[i].r >= b[j].l && b[i].r <= b[j].r && b[i].h > b[j].h) {if (j == t)ans = min(ans, dp[i][1] + b[i].h - b[j].h);dp[j][0] = min(dp[j][0], dp[i][1] + b[i].h - b[j].h + b[i].r - b[j].l);dp[j][1] = min(dp[j][1], dp[i][1] + b[i].h - b[j].h + b[j].r - b[i].r);break;}}}cout << (ans == 0x3f3f3f3f ? -1 : ans) << endl;return 0;
}

http://www.dtcms.com/a/549514.html

相关文章:

  • MATLAB频散曲线绘制与相速度/群速度分析
  • LeetCode:204. 计数质数
  • MySQL 更新(UPDATE)语句的执行流程,包括 存储引擎内部的文件写入 和 主从复制的同步过程
  • HarmonyOS 系统分享功能概述
  • [crackme]033-dccrackme1
  • PNP机器人将要亮相2025 ROS中国区大会|发表演讲、共探具身智能新未来
  • 寻找大连网站建设企业建站公司是干嘛的
  • Slicer模块系统:核心继承架构解析
  • Mahony姿态解算算法解读
  • Nginx前端配置与服务器部署详解
  • 上海设计网站青岛航拍公司
  • ASR+MT+LLM+TTS 一体化实时翻译字幕系统
  • h5游戏免费下载:视觉差贪吃蛇
  • 【车载开发系列】如何用Parasoft实现跨平台编译环境的配置
  • 跨境网站开发公司青海做网站好的公司
  • Rust UI 框架GPUI 与 Electron 的对比
  • Go 的 IO 多路复用
  • 【论文精读】MicroCinema:基于分治策略的文本到视频生成新框架
  • 建设银行租房网站郑州网站建设包括哪些
  • Flink keyby使用随机数踩坑记
  • 行业网站建设方案室内设计师联盟首页
  • JAVA中的堆和栈
  • A2A协议的多智能体投顾引擎架构, 智能体生成年化418%,回撤11%,夏普比5.19的规则策略,附python代码
  • 建设黑彩网站需要什么药理学网站建设方案
  • Linux本机ping虚机ip Network unreachable
  • 个体工商户可以备案哪些网站做一个同城便民信息网站怎么做
  • 队列——速成
  • 南京建设网站的公司网易企业邮箱登录入口手机
  • R语言基于Rselenium模拟浏览器抓取DatabaseCommons数据-连载NO.04
  • 对于一些MP4文件的压缩