1033 To Fill or Not to Fill

在这里插入图片描述
在这里插入图片描述
是否有能到达的站点

  • 无,输出当前距离(最后一个到达站点距离+满油箱状态下行走距离)
    • 有价格更低的站点
      如果油量不足以到达新站点,加刚好到达该站点的油量(只加可到达范围内最便宜的油)
    • 有价格更高的站点
      在当前油量基础上,加满油箱
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 510;
const int INF = 1000000000;
struct station{double price, dis;bool operator < (station &s1){//加油站点按照距离升序排序 return dis < s1.dis;}
}s[maxn];
int main(){int n;double c, d, dAvg;cin >> c >> d >> dAvg >> n;for(int i = 0; i < n; i++){cin >> s[i].price >> s[i].dis;}s[n].price = 0;//记得加上终点,价格设为0即可 s[n].dis = d;sort(s, s + n);//对所给站点按照距离从近到远排序 if(s[0].dis != 0){//初始状态无油,若没有距离为0的站点则不能出发 cout << "The maximum travel distance = 0.00";}else{int cur = 0, k;//cur当前站点    double minP, full = c * dAvg, ans = 0, have = 0, need; //full满油箱状态下可走的距离,ans开销,have当前油量   while(cur < n){//到达终点或不能继续时结束 k = -1;//最低价格的站点编号 minP = INF;//最低价格 for(int i = cur + 1; i <= n && (s[i].dis - s[cur].dis) <= full; i++){//找到能到达的站点,并记录其中价格最低的,当价格低于起始站中断 if(s[i].price < minP){minP = s[i].price;k = i;if(minP < s[cur].price) break;}} if(k == -1) break;//当前站点加满油也到达不了任何站点 need = (s[k].dis - s[cur].dis) / dAvg;//到达该优惠站点需要的汽油量 if(s[k].price < s[cur].price){//出现价格比当前站点更便宜 if(have < need){//当前油量不足以到达k站点 ans += (need - have) * s[cur].price;have = 0;}else have -= need;//当前油量可以到达k站点 }else{//能到达但是价格高于当前站点 ans += s[cur].price * (c - have);//加满,注意可能当前还有一定油量 have = c - need;}cur = k;//更新当前站点 }if(cur != n) printf("The maximum travel distance = %.2f", s[cur].dis + full);else printf("%.2f", ans);}return 0;
} 

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

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

相关文章

论文速览 | IEEE TCI, 2022 | 单光子级非视距成像:估计强度与优化重建

注1:本文系"计算成像最新论文速览"系列之一,致力于简洁清晰地介绍、解读非视距成像领域最新的顶会/顶刊论文(包括但不限于 Nature/Science及其子刊; CVPR, ICCV, ECCV, SIGGRAPH, TPAMI; Light‑Science & Applications, Optica 等)。 本次介绍的论文是:<2…

前端开发学习笔记2 (CSS简介、CSS基础选择器、CSS字体属性、CSS文本属性和CSS引入方式)

文章目录 CSS简介CSS基本介绍CSS基本语法规范CSS代码风格 CSS基础选择器选择器的作用和分类标签选择器类选择器id选择器通配符选择器 CSS字体属性font-family字体类型设置font-size字体大小设置font-weight字体粗细设置font-style字体样式设置font字体复合属性设置 CSS文本属性…

Dimitra:基于区块链、AI 等前沿技术重塑传统农业

根据 2023 年联合国粮食及农业组织&#xff08;FAO&#xff09;、国际农业发展基金&#xff08;IFAD&#xff09;等组织联合发布的《世界粮食安全和营养状况》报告显示&#xff0c;目前全球约有 7.35 亿饥饿人口&#xff0c;远高于 2019 年的 6.13 亿&#xff0c;这意味着农业仍…

为什么跟着高手还是亏损?fpmarkets10秒解答

各位投资者&#xff0c;不知道你们有没有遇见这样的情况&#xff1f;不管是别人能够持续盈利的技术指标&#xff0c;还是业内知名的行业专家&#xff0c;只要是我们这些普通的投资者一旦使用持续盈利的技术指标&#xff0c;或者跟随专家顾问的信号同时在同一个方向建仓&#xf…

React中使用antDesign框架

1.在React项目中使用Ant Design&#xff0c;首先需要安装Ant Design: npm install antd --save 2.按需引入Ant Design组件&#xff0c;以减小最终打包的大小。使用babel-plugin-import插件可以实现按需加载。首先安装插件&#xff1a; npm install babel-plugin-import --save-…

solibity常用语法

引言 很久没写合约了&#xff0c;今天一写很多语法都忘记了&#xff0c;整理一下把 函数 语法描述public公有,任何人(拥有以太坊账户的)都可以调用 牢记private私有, 只有智能合约内部可以调用 牢记external仅合约外部可以调用&#xff0c;合约内部需使用this调用 先忽略inter…

python怎么处理txt

导入文件处理模块 import os 检测路径是否存在&#xff0c;存在则返回True&#xff0c;不存在则返回False os.path.exists("demo.txt") 如果你要创建一个文件并要写入内容 #如果demo.txt文件存在则会覆盖&#xff0c;并且demo.txt文件里面的内容被清空&#xff0c;如…

机器人规划算法——基于A-star和CostMap膨胀地图的全局规划(附Github源码链接)

前言 这段时间,笔者用c++写了一套机器人局部避障算法,并工程落地,机器人可以正常避障,避障所采用的技术方案是A*+TEB算法。并取得一定成果,后续还要针对复杂的场景继续优化。主要涉及到技术模块有: (1) costmap:代价地图模块,分为静态层和障碍物层以及膨胀层,静态层将…

Machine Learning机器学习之文本分析的词法分析、句法分析、语义分析(详细讲解)

目录 前言 词法分析&#xff1a; 词义消歧&#xff1a; 句法分析&#xff1a; 语义分析&#xff1a; 文本分析应用 1、文本分类&#xff1a; 设计过程&#xff1a; 代码实现&#xff1a; 完整代码&#xff1a; 2、情感分析&#xff1a; 总结 博主介绍&#xff1a;✌专注于前后…

计算机网络中---基本概念

什么是计算机网络 计算机网络是指利用通信设备和传输媒体,将地理位置不同的多台计算机连接在一起,以实现信息、资源和数据的共享和交换的系统。换句话说,计算机网络是由多台计算机通过通信设备和通信线路相互连接,形成一个整体,使得连接在网络中的计算机可以彼此之间进行数…

【Go】四、包名、访问范围控制、标识符、运算符

文章目录 1、_2、包名3、命名大小影响可访问范围4、运算符5、获取终端输入 1、_ 下划线"_"本身在Go中是一个特殊的标识符&#xff0c;称为空标识符用于忽略某个值 1&#xff09;忽略导入的没使用的包 2&#xff09;忽略某个返回值 2、包名 main包是程序的入口包&a…

[C++11] Lambda表达式完整解析

说明&#xff1a;C11中的Lambda表达式是一种允许创建匿名函数对象的语法结构。Lambda表达式可以捕获作用域中的变量&#xff0c;并且可以像普通函数一样被调用。它们是C11标准中引入的一个重要特性&#xff0c;旨在提供一种方便的方式来定义内联的小型函数&#xff0c;特别适用…

关于 HEAP CORRUPTION DETECTED:after Normal block 错误的原因及解析

目录 一、HEAP CORRUPTION DETECTED:after Normal block 出现的报错情况&#xff1a; 二、问题原因&#xff08;重要&#xff09;&#xff1a; 三、举例 1.错误代码如下&#xff1a; 2.错误原因及分析&#xff08;重要&#xff09;&#xff1a; 3.解决方法 ​编辑 4.正…

JavaScript 窗口

1.打开新窗口&#xff1a;window.open() <button onclick"isOpen()">打开百度</button> <script> function isOpen(){ myBaidu window.open(http://www.baidu.com); } </script> 2.关闭当前窗口&#xff1a;window.close() <button on…

【Linux C | 多线程编程】线程的连接、分离,资源销毁情况

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-04-01 1…

SSM框架学习——MyBatis关联映射

MyBatis关联映射 为什么要关联映射 实际开发中&#xff0c;对数据库操作常常会涉及多张表&#xff0c;所以在OOP中就涉及对象与对象的关联关系。针对多表操作&#xff0c;MyBatis提供关联映射。 关联关系概述 一对一&#xff1a;A类中定义B类的属性b&#xff0c;B类中定义A…

MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记

以前微处理器&#xff08;MPU&#xff09;与微控制器&#xff08;MCU&#xff09;是截然不同的两种设备&#xff0c;MPU支持丰富的软件系统&#xff0c;如Linux和相关的软件堆栈&#xff0c;而MCU通常将专注于裸机和RTOS。近年来&#xff0c;随着MCU的性能越来越高&#xff0c;…

【Spring源码】WebSocket做推送动作的底层实例

一、前瞻 Ok&#xff0c;开始我们今天的对Spring的【模块阅读】。 那就挑Web里的WebSocket模块&#xff0c;先思考下本次阅读的阅读线索&#xff1a; WebSocket在Spring里起到什么作用这个模块采用了什么设计模式我们都知道WebSocket可以主动推送消息给用户&#xff0c;那做推…

Netty空闲检测Keepalive

文章目录 前言一、空闲检测二、Keepalive机制总结 前言 Netty的空闲检测和Keepalive机制都是为了确保客户端和服务器之间的连接仍然有效&#xff0c;防止连接断开。但它们在实现方式和原理上有所不同。 Netty的空闲检测机制是一种自定义的、基于应用层的机制。它主要通过定时…

halcon图像膨胀

1、原理&#xff1a; 使用结构元素在图像上移动&#xff0c;如果结构元素中有任意一个像素和图像上的非零像素重叠&#xff0c;则保留此时结构元素中心所在位置&#xff0c;并将其像素值设置为非零。 2、halcon代码 其中圆形结构元素可设置半径&#xff0c;矩形结构元素设置…