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…

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

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

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

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

python怎么处理txt

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

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…

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

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

【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;那做推…

halcon图像膨胀

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

MySQL故障排查与生产环境优化

一、MySQL单实例常见故障 1.逻辑架构图 MySQL逻辑架构图客户端和连接服务核心服务功能存储引擎层数据存储层 2.故障一 故障现象 ERROR 2002 (HY000): Cant connect to local MySQL server through socket/data/mysql/mysql.sock(2) 问题分析 数据库未启动或者数据库端口…

Yolo 自制数据集dect训练改进

上一文请看 Yolo自制detect训练-CSDN博客 简介 如下图&#xff1a; 首先看一下每个图的含义 loss loss分为cls_loss, box_loss, obj_loss三部分。 cls_loss用于监督类别分类&#xff0c;计算锚框与对应的标定分类是否正确。 box_loss用于监督检测框的回归&#xff0c;预测框…

蓝桥杯真题:成绩统计

这题思路简单&#xff0c;但是输出结果的位置容易出错&#xff0c;题目要求四舍五入&#xff0c;所以要用Math.round&#xff08;&#xff09;的方法

Python快速入门系列-7(Python Web开发与框架介绍)

第七章:Python Web开发与框架介绍 7.1 Flask与Django简介7.1.1 Flask框架Flask的特点Flask的安装一个简单的Flask应用示例7.1.2 Django框架Django的特点Django的安装一个简单的Django应用示例7.2 前后端交互与数据传输7.2.1 前后端交互7.2.2 数据传输格式7.2.3 示例:使用Flas…

解决GNU Radio+USRP实现OFDM收发在接收端存在误码问题

文章目录 前言一、OFDM 收发流程1、OFDM 收端流程2、OFDM 收端流程 二、问题所在1、find_trigger_signal 函数解读2、general_work 函数3、问题所在 三、修改源码四、运行结果1、频谱2、传输数据测试 五、调试小技巧六、资源自取 前言 在使用 GNU Radio 时使用官方例程搭建 GN…

git clone没有权限的解决方法

一般情况 git clone时没有权限&#xff0c;一般是因为在代码库平台上没有配置本地电脑的id_rsa.pub 只要配置上&#xff0c;一般就可以正常下载了。 非一般情况 但是也有即使配置了id_rsa.pub后&#xff0c;仍然无法clone代码的情况。如下 原因 这种情况是因为ssh客户端…

前端常用代码整理— js,jquery篇(3)

目录 1.判断是否是json字符串 2.获取当前网址 3.将文本复制到剪贴板 4.获取一个月的天数 5.展平数组 6.要修改getRandomItem函数以返回数组中的随机两个元素&#xff0c;可以尝试以下代码 1.判断是否是json字符串 const isJson str > {try {JSON.parse(str);return …

通过 Cookie、Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(一)

本篇博客对应“2.3 会话管理”小节 视频名称&#xff1a;会话管理 视频链接 什么是HTPP协议&#xff1f; HTTP&#xff0c;Hpyer Text Transfer Protocl&#xff1a;定义了浏览器怎样从&#xff08;万维网客户进程&#xff09;怎样向Web服务器&#xff08;万维网服务器&#…