【蓝桥杯每日一题】 蜗牛——动态规划

devtools/2024/12/24 7:57:18/

蜗牛

蓝桥杯每日一题 2024-12-23 蜗牛 动态规划

题目描述

今天,一只蜗牛来到了二维坐标系的原点。

在 x 轴上有 n 根竹竿。它们平行于 y 轴,底部纵坐标为 0,横坐标分别为 x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,,xn。 竹竿的高度均为无限高,宽度可忽略。蜗牛想要从原点走到第 n 个竹竿的顶部,也就是坐标 ( x n , 0 ) (x_n, 0) (xn,0)
它只能沿 x 轴上或者竹竿上爬行,在 x 轴上爬行速度为 1 单位/秒 1 \, \text{单位/秒} 1单位/。 由于受到引力影响,蜗牛在竹竿上向上的爬行速度为 0.7 单位/秒 0.7 \, \text{单位/秒} 0.7单位/, 而向下的爬行速度为 1.3 单位/秒 1.3 \, \text{单位/秒} 1.3单位/

为了快速到达目的地,它施展了魔法,在第 i i i i + 1 i+1 i+1根竹竿之间建立了传送门 ( 0 < i < n ) (0 < i < n) (0<i<n)。 如果蜗牛位于第 i i i根竹竿的高度为 a i a_i ai的位置 ( x i , a i ) (x_i, a_i) (xi,ai), 就可以瞬间到达第 i + 1 i+1 i+1根竹竿的高度为 b i + 1 b_{i+1} bi+1的位置 ( x i + 1 , b i + 1 ) (x_{i+1}, b_{i+1}) (xi+1,bi+1)。 请计算蜗牛最少需要多少秒才能到达目的地。

解题思路

解题思路

基本实现思路已在图中表明。

Accepted
#include <iostream>
#include <iomanip>using namespace std;const int N = 100010,INF = 0x3f3f3f3f;
int t[N],n,a[N],b[N];
double f[N][2];double get(int x,int y) {// x 是起点  y 是终点if(x > y) return (x-y)/1.3;else return (y-x)/0.7;
}int main()
{cin>>n;for(int i = 1;i <= n;i++) {cin>>t[i];}for(int i = 1;i < n;i++) {cin>>a[i]>>b[i+1];}for(int i = 1;i <= n;i++) {f[i][0] = f[i][1] = INF;}f[1][0] = t[1];for(int i = 2;i <= n;i++) {int interval = t[i] - t[i-1]; // 间隔// 走到竹竿底部f[i][0] = min(f[i-1][0] + interval,f[i-1][1] + interval + get(b[i-1],0));// 走到竹竿的b[i]处f[i][1] = min(f[i-1][0] + get(0,a[i-1]),f[i-1][1] + get(b[i-1],a[i-1]));}cout<<fixed<<setprecision(2)<<min(f[n][0],f[n][1]+b[n]/1.3);return 0;
}
思考

这道题可以算是较为简单的动态规划,动态转移都是比较直接的,那么首先要观察的是答案该怎么求,然后从答案上递推之前的该怎么求;这道题最主要的是维护两个状态,分别计算,最后再求答案!

备赛交流

蓝桥杯备赛交流:可以+v:xiaoyu208H (备注:蓝桥杯
想要一起讨论的可以添加!!!


http://www.ppmy.cn/devtools/144930.html

相关文章

【hackmyvm】moosage靶机wp

tags: HMV图片马文件上传perl脚本 这里写目录标题 2. 信息收集2.1. 端口扫描2.2. 目录扫描2.3. 源码获取 3. 图片马弹shell4. 提权baca用户5. 提权root5.1. 修改ssh登录脚本提权 靶机链接 https://hackmyvm.eu/machines/machine.php?vmMoosage 作者 sml 难度 ⭐️⭐️⭐️⭐…

从用户视角出发:用例图分析家政预约小程序

目录 1 引言&#xff1a;什么是用例图&#xff1f;它解决了什么问题&#xff1f;2 如何绘制用例图&#xff1f;2.1 绘制步骤 3 家政预约小程序用例图分析4 顾客用例详细分析4.1 注册/登录4.2 浏览服务4.3 搜索服务4.4 查看服务详情4.5 预订服务4.6 支付订单4.7 取消订单4.8 评价…

CTF-WEB php-Session 文件利用 [第一届国城杯 n0ob_un4er 赛后学习笔记]

step 1 搭建容器 教程 题目 github.com Dockerfile 有点问题,手动修复一下 FROM php:7.2-apacheCOPY ./flag /root COPY ./readflag / COPY ./html/ /var/www/html/ COPY ./php.ini /usr/local/etc/php/php.ini COPY ./readflag /readsecretRUN chmod 755 /var/www/html &…

基于Hal库stm32串口配置printf函数

使用示例 /*初始化USART 配置模式为 115200 8-N-1,中断接收*/ DEBUG_USART_Config(); printf("欢迎使用野火 电机开发板 步进电机 速度闭环控制 位置式PID例程\r\n"); printf("按下按键1增加目标值、按键2减少目标值\r\n"); printf("其他操作请使用…

Slate文档编辑器-TS类型扩展与节点类型检查

Slate文档编辑器-TS类型扩展与节点类型检查 在之前我们基于slate实现的文档编辑器探讨了WrapNode数据结构与操作变换&#xff0c;主要是对于嵌套类型的数据结构类型需要关注的Normalize与Transformers&#xff0c;那么接下来我们更专注于文档编辑器的数据结构设计&#xff0c;…

Echarts连接数据库,实时绘制图表详解

文章目录 Echarts连接数据库&#xff0c;实时绘制图表详解一、引言二、步骤一&#xff1a;环境准备与数据库连接1、环境搭建2、数据库连接 三、步骤二&#xff1a;数据获取与处理1、查询数据库2、数据处理 四、步骤三&#xff1a;ECharts图表配置与渲染1、配置ECharts选项2、动…

ssr实现方案

目录 序言 一、流程 二、前端要做的事情 三、节点介绍 四、总结 序言 本文不是详细的实现过程&#xff0c;是让你最快最直接的理解ssr的真正实现方法&#xff0c;有前端经验的同学&#xff0c;能够很好的理解过程&#xff0c;细节根据具体项目实现 一、前端要做的事情 1.…

[Effective C++]条款38-39 复合和private继承

本文初发于 “天目中云的小站”&#xff0c;同步转载于此。 条款38 : 通过复合塑膜出has-a或"is-implemented-in-terms-of" 在条款32中我们认识了public继承意味着is-a, 本条款将会认识两个新的关系, 均可通过"复合"这一操作实现出来. 复合 所谓复合, 就是…