洛谷P2179 [NOI2012] 骑行川藏

题目描述

蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨。

川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行前设定好目的地,同时合理分配好自己的体力是一件非常重要的事情。

由于蛋蛋装备了一辆非常好的自行车,因此在骑行过程中可以认为他仅在克服风阻做功(不受自行车本身摩擦力以及自行车与地面的摩擦力影响)。

某一天他打算骑 𝑛n 段路,每一段内的路况可视为相同:对于第 𝑖i 段路,我们给出有关这段路况的 33 个参数 𝑠𝑖,𝑘𝑖,𝑣𝑖′si​,ki​,vi′​,其中 𝑠𝑖si​ 表示这段路的长度,𝑘𝑖ki​ 表示这段路的风阻系数,𝑣𝑖′vi′​ 表示这段路上的风速(𝑣𝑖′>0vi′​>0 表示在这段路上他遇到了顺风,反之则意味着他将受逆风影响)。

若某一时刻在这段路上骑车速度为 𝑣v,则他受到的风阻 大小为 𝐹=𝑘𝑖(𝑣−𝑣𝑖′)2F=ki​(v−vi′​)2(这样若在长度为 𝑠s 的路程内保持骑行速度 𝑣v 不变,则他消耗能量(做功)𝐸=𝑘𝑖(𝑣−𝑣𝑖′)2𝑠E=ki​(v−vi′​)2s )。

设蛋蛋在这天开始时的体能值是 𝐸𝑈EU​,请帮助他设计一种行车方案,使他在有限的体力内用最短的时间到达目的地。请告诉他最短的时间 𝑇T 是多少。

输入格式

第一行包含一个正整数 𝑛n 和一个实数 𝐸𝑈EU​,分别表示路段的数量以及蛋蛋的体能值。

接下来 𝑛n 行分别描述 𝑛n 个路段,每行有 33 个实数 𝑠𝑖,𝑘𝑖,𝑣𝑖′si​,ki​,vi′​ 分别表示第 𝑖i 段路的长度,风阻系数以及风速。

输出格式

输出一个实数 𝑇T,表示蛋蛋到达目的地消耗的最短时间,要求至少保留到小数点后 66 位。

输入输出样例

输入 #1

3 10000
10000 10 5
20000 15 8
50000 5 6

输出 #1

12531.34496464

说明/提示

样例说明

一种可能的方案是:蛋蛋在三段路上都采用匀速骑行的方式,其速度依次为 5.12939919,8.03515481,6.178379675.12939919,8.03515481,6.17837967。

评分方法

本题没有部分分,你程序的输出只有和标准答案的差距不超过 10−610−6 时,才能获得该测试点的满分,否则不得分。

数据规模与约定

对于 10%10% 的数据,𝑛=1n=1。

对于 40%40% 的数据,𝑛≤2n≤2。

对于 60%60% 的数据,𝑛≤100n≤100。

对于 80%80% 的数据,𝑛≤1000n≤1000。

对于 100%100% 的数据,𝑛≤104n≤104,𝐸𝑈≤108EU​≤108,𝑠𝑖∈[0,105]si​∈[0,105],𝑘𝑖∈(0,15]ki​∈(0,15],𝑣𝑖′∈(−100,100)vi′​∈(−100,100)。

数据保证最终的答案不会超过 105105。

提示

必然存在一种最优的体力方案满足:蛋蛋在每段路上都采用匀速骑行的方式。

Code:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
double s[10005], k[10005], u[10005];
double e;
double solve(double x, int i) { double l = 0, r = 100005, v;int batch = 60;while(batch--) {v = (l + r) / 2;if(2 * k[i] * s[i] * x * v * v * (v - u[i]) > -s[i]) l = v;/else r = v;}v = (l + r) / 2;return v;
}
double work(double x) {double sum = 0;for(int i = 1; i <= n; i++) {double v = solve(x, i);sum += k[i] * s[i] * (v - u[i]) * (v - u[i]);}return sum;
}
signed main() {cin>>n>>e;for(int i = 1; i <= n; i++) {cin>>s[i]>>k[i]>>u[i];}double l = -0x3f3f3f, r = 0, dc;int batch = 100;while(batch--) {dc = (l + r) / 2;if(work(dc) <= e) l = dc;else r = dc;}dc = (l + r) / 2;double ans = 0;for(int i = 1; i <= n; i++)ans += s[i] / solve(dc, i);printf("%.12lf\n", ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/848297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何处理SSL证书过期问题?

SSL证书是网络安全的重要组成部分&#xff0c;它为网站提供了数据加密、身份验证和增强用户信任等多重保护。然而&#xff0c;SSL证书并非永久有效&#xff0c;其有效期通常为一年。当SSL证书过期时&#xff0c;网站安全性会受到影响&#xff0c;甚至可能面临安全风险。本文旨在…

好的一些网安资源

镜像&#xff1a;https://msdn.itellyou.cn/ 编程学习{ 菜鸟教程&#xff1a;https://www.runoob.com/ w3school&#xff1a;https://www.w3school.com.cn/ https://www.dotcpp.com/ http://zh.cppreference.com/ https://beginnersbook.com/ https://www.ai8py.com/ }…

《2024年网络安全预测:未来规划深度洞察》

2024 年打击网络对手的计划。 阅读报告&#xff0c;了解我们的专家对 2024 年网络安全行业的预测&#xff0c;包括&#xff1a; 攻击者将人工智能融入其行动中&#xff0c;防御者利用它来加强检测和响应 民族国家继续开展网络行动以实现其地缘政治目标 攻击者继续利用零日漏洞…

【Android面试题】请说一说ArrayList 如何保证线程安全,除了加关键字的方式 ?

面试题:请说一说ArrayList 如何保证线程安全,除了加关键字的方式 ? 这道题想考察什么? ArrayList的底层原理: ArrayList是基于数组实现的,是一个动态的数组,可以自动扩容。 但是ArrayList不是线程安全的,效率比较高,只能用于单线程环境 考察的知识点 ArrayList底层…

【UML用户指南】-08-对基本结构建模-图

目录 1、41视图 2、术语和概念 3、结构图 &#xff08;1&#xff09;类图&#xff08;class diagram&#xff09;&#xff1a; &#xff08;2&#xff09;构件图&#xff1a;&#xff08;component diagram&#xff09; &#xff08;3&#xff09;组合结构图&#xff1a;…

会声会影2024官方旗舰版最新版评测

随着数字内容创作的兴起&#xff0c;越来越多的人开始关注视频制作领域。对于初学者和专业人士来说&#xff0c;选择一款适合自己的视频编辑软件是非常重要的。今天&#xff0c;我将为大家全面而深入地评测会声会影2024最新版&#xff0c;从易用性、功能性以及性价比方面进行评…

Lisp解析器技术文档

Lisp解析器技术文档 目录 Lisp解析器技术文档 一、引言 二、Lisp语言简介 三、Lisp解析器实现

js 数字精确度

事情的起源&#xff1a; 项目中 填写的赔付金额是小数 传给后端需要 *100 9.87 *100 传给后端后是986.9999999999999 后端直接取整 就变成了9.86了 0.1 0.2 ! 0.3 console.log(0.1 0.2) //0.30000000000000004 console.log(0.1 0.2 0.3) //false1. 数字的存储 浮点数是用…

InfiniGate自研网关实现思路七

25.网关Nginx负载模型配置 通过模拟多个HTTP服务配置到 Nginx 做负载均衡&#xff0c;以学习API网关负载的配置和使用 API 网关是用于支撑分布式 RPC 接口协议转换提供 HTTP 调用的一套服务&#xff0c;那么 API 网关系统就需要可横向扩展来满足系统的吞吐量诉求。所以这里需…

宝塔nginx配置

将跟php有关的注释掉&#xff1a; 添加&#xff1a; #解决vue刷新404问题try_files $uri $uri/ /index.html; location /prod-api/ {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header…

Day13:vw 和 vh 基本使用

目标&#xff1a;使用 vw 和 less 完成移动端的布局。 一、vw 适配方案 1、vw 和 vh 基本使用 vw 和 vh 是相对单位&#xff0c;相对视口尺寸计算结果。 vw&#xff1a;viewport width&#xff08;1vw 1/100视口宽度 &#xff09;vh&#xff1a;lviewport height ( 1vh 1/…

《C++避坑神器·二十六》结构体报重定义错误问题和std::variant同时存储不同类型的值使用方式

1、结构体重定义错误问题&#xff1a; struct person {int age; }p;p是一个已经创建好的对象&#xff0c;相当于struct person p; 如果放在头文件中容易被多个文件包含报重定义错误 typedef struct person {int age; }person;person就是struct person&#xff0c;这时候并没有…

Priority_queue

一、priority_queue的介绍和使用 1.1 priority_queue的介绍 1.优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第一个元素总是它所包含的元素中最大的。 2.优先队列类似于堆&#xff0c; 在堆中可以随时插入元素&#xff0c; 并且只能检索最大堆…

深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取

在JavaScript中&#xff0c;indexOf()方法用于搜索数组中的元素&#xff0c;并返回匹配的第一个元素的索引。如果数组中没有匹配的元素&#xff0c;则返回-1。 indexOf()方法的语法如下所示&#xff1a; array.indexOf(searchElement[, fromIndex]) 其中searchElement是要搜…

CMakeLists.txt和Package.xml

CMakeLists.txt和Package.xml CMakeLists.txt 总览 CMakeLists.txt 是用于定义如何构建 ROS (Robot Operating System) 包的 CMake 脚本文件。CMake 是一个跨平台的构建系统&#xff0c;用于自动化编译过程。在 ROS 中&#xff0c;CMakeLists.txt 文件指定了如何编译代码和链…

门面模式Api网关(SpringCloudGateway)

1. 前言 当前通过Eureka、Nacos解决了服务注册和服务发现问题&#xff0c;使用Spring Cloud LoadBalance解决了负载均衡的需求&#xff0c;同时借助OpenFeign实现了远程调用。然而&#xff0c;现有的微服务接口都直接对外暴露&#xff0c;容易被外部访问。为保障对外服务的安全…

分布式系统常用的三注解:@DS,@DistributeLock,@GlobalTransactional【开发实践】

文章目录 一、多数据源的动态切换&#xff1a;DS1.1 多数据源的背景1.1.1 主从复制1.1.2 读写分离1.1.3 分库分表 1.2 DS的使用流程1.2.1 添加依赖1.2.2 配置数据源1.2.3 使用 DS 切换数据源 1.3 使用DS切换数据源失效1.3.1 情形二&#xff1a;同类中的方法调用DS方法1.3.2 情形…

关于Golang中自定义包的简单使用-Go Mod

1. go env 查看 GO111MODULE 是否为 on&#xff0c;不是修改成on go env -w GO111MODULEon 2 .自定义包的目录格式 3. test.go 内容 package calc func Add(x, y int) int { // 首字母大写表示公有方法return x y }func Sub(x, y int) int {return x - y } 4.生成calc目…

CORSscannerburp的插件jsonp-hunterdnsub

1.CORSscanner 下载地址&#xff1a;CORScanner: Fast CORS misconfiguration vulnerabilities scanner 有时候会出一些警告没引入变量之类的&#xff0c;用pip安装一下就可以了 打开之后是这样的 2.jsonp-hunter 安装jython&#xff1a;Jython的安装和配置环境_jython安装…

前后端分离与实现 ajax 异步请求 和动态网页局部生成

前端 <!DOCTYPE html><!-- 来源 --> <!-- https://cloud.tencent.com/developer/article/1705089 --> <!-- https://geek-docs.com/ajax/ajax-questions/19_ajax_javascript_send_json_object_with_ajax.html --> <!-- 配合java后端可以监听 --&…