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

embedded/2024/12/26 1:35:53/

蜗牛

蓝桥杯每日一题 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/embedded/148763.html

相关文章

VMware虚拟机三种网络工作模式

vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。 打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那…

【大语言模型】ACL2024论文-30 探索语言模型在文本分类中的伪相关性:概念层面的分析

【大语言模型】ACL2024论文-30 探索语言模型在文本分类中的伪相关性&#xff1a;概念层面的分析 目录 文章目录 目录文章摘要研究背景问题与挑战如何解决创新点算法模型概念标签获取测量概念伪相关性模型鲁棒性评估数据重平衡技术 实验效果伪相关性测量结果减轻伪相关性的方法 …

LabVIEW开发需要懂那些数学知识?

LabVIEW开发是一种图形化编程方法&#xff0c;广泛应用于工程和科学领域。在开发过程中&#xff0c;数学知识是不可或缺的&#xff0c;它不仅是分析和设计复杂系统的基础&#xff0c;还能提升开发效率和系统性能。下面将从应用需求、案例分析、介绍LabVIEW开发中所需的数学知识…

【C++动态规划 数位dp】2376. 统计特殊整数|2120

本文涉及知识点 下载及打开打包代码的方法兼述单元测试 C动态规划 数位dp LeetCode2376. 统计特殊整数 如果一个正整数每一个数位都是 互不相同 的&#xff0c;我们称它是 特殊整数 。 给你一个 正 整数 n &#xff0c;请你返回区间 [1, n] 之间特殊整数的数目。 示例 1&…

完全二叉树的权值(蓝桥杯2019年试题G)

给定一棵包含N个节点的完全二叉树&#xff0c;树上的每个节点都有一个权值&#xff0c;按从上到小、从左到右的顺序依次是A1、A2……An,&#xff08;1&#xff0c;2&#xff0c;n为下标。&#xff09;如下图所示。 现在&#xff0c;小明要把相同深度的节点的权值加到一起&#…

uniapp小程序使用webview 嵌套 vue 项目

uniapp小程序使用webview 嵌套 vue 项目 小程序中发送 <web-view :src"urlSrc" message"handleMessage"></web-view>export default {data() {return {urlSrc: "",};},onLoad(options) {// 我需要的参数比较多 所以比较臃肿// 获取…

ROSboard:为您的机器人提供强大的Web可视化工具

ROSboard&#xff1a;为您的机器人提供强大的Web可视化工具 rosboard ROS node that turns your robot into a web server to visualize ROS topics [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/ro/rosboard 项目介绍 ROSboard 是一个专为机器人设计的 Web 服…

【C++基础】09、结构体

一、结构体(struct) C/C 数组允许定义可存储相同类型数据项的变量&#xff0c;但是结构体是 C 中另一种用户自定义的可用的数据类型&#xff0c;它允许存储不同类型的数据项。 结构体用于表示一条记录&#xff0c;假设现在想要跟踪图书馆中书本的动态&#xff0c;可能需要跟踪每…