[codevs1046]旅行家的预算

算法训练 旅行家的预算 算法训练 旅行家的预算 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。 输入格式 第一行为4个实数D1、C、D2、P与一个非负整数N;   接下来N行,每行两个实数Di、Pi。 阅读详情

题目←

瞎贪心……
记录当前为止最便宜的加油站minx
因为每一站油量最多为C,所以在当前站没加满的情况下,每走到一条新路优先加单价最小的加油站
要是加满的话,直接跳到目前的加油站
加满了油还走不到下一站就是非法情况了……(废话)

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int MAXN = 200000 + 50;
double D,C,D2,P1;
double P[MAXN],pos[MAXN],ans;
int n,now = 0,minx = 1061109567;
double sy[MAXN];
int main(){
    scanf("%lf%lf%lf%lf",&D,&C,&D2,&P1);
    scanf("%d",&n);
    for(int i = 1;i <= n;i ++){
        scanf("%lf%lf",&pos[i],&P[i]);
        sy[i] = C;
    }
    sy[0] = C;
    P[0] = P1;
    pos[n + 1] = D;
    P[n + 1] = 1061109567;
    minx = 0;
    for(int i = 1;i <= n + 1;i ++){
        double need = (pos[i] - pos[i - 1])/D2;
        if(need > C){
            printf("No Solution");
            return 0;
        }
        if(P[minx] <= P[i - 1]){
            if(need <= sy[minx]){
                sy[minx] -= need;
                ans += need*P[minx];
            }
            else{
                need -= sy[minx];
                ans += sy[minx]*P[minx];
                minx = i - 1;
                sy[minx] -= need;
                ans += need*P[minx];
            }
        }
        else{
            minx = i - 1;
            sy[minx] -= need;
            ans += need*P[minx];
        }
    }
    printf("%.2lf",ans);
    return 0;
}
洛谷 P1016 [NOIP1999 提高组] 旅行家的预算【贪心】 首先考虑一下简化版,首先我们认为汽车油箱的容量是无限的,那么这个题目就简单多了,每个位置城市肯定都是从当前位置前面所有的城市中油价最低的城市过来,这样就能保证总花费最少,但是这个题目难就难在汽车的容量是有限制的,这就相当于把这个题目加了一个限制,就是当前位置城市只能从当前位置城市前面一定区间内的城市转移过来,下面我们考虑一种贪心策略。那么为什么加到能刚好到达下一个到达的城市就是最优的,因为我们找到的下一个城市油价更低,在当前位置多加一些油,不如到下一个城市在加,因为下一个城市花费更低。 阅读详情

相关推荐

求旅行者旅行费用问题

一个旅行家想驾驶汽车从城市A到城市B(设出发时油箱是空的)。给定两个城市之间的距离D、汽车油箱的容量C、每升汽油能行驶的距离D0、沿途油站数N、油站I离出发点的距离D1以及该站每升汽油的价格PI,I=1,2,…,N。要花最少的油费从城市A到城市B,在每个加油站应加多少油,最少花费为多少? C代码: #include #define D  275.60 #define C  11.9

即使没有翅膀,心也要飞翔! 1899

算法设计 加油问题

算法设计 加油问题 1. 问题描述 一个旅行家想驾驶汽车从城市A到城市B(设出发时油箱是空的)。给定两个城市之间的距离dis、汽车油箱的容量c、每升汽油能行驶的距离d、沿途油站数n、油站i离出发点的距离d[i]以及该站每升汽油的价格p[i],i=1,2,…,n。设d[1]=0<d[2]<…<d[n]。要花最少的油费从城市A到城市B,在每个加油站应加多少油,最少花费为多少? 2. 具体要求 Input 输入的第一行是一个正整数k,表示测试例个数。接下来几行是k个测试例的数据,每个测试例的数据

oowadanoko的博客 1680

旅行者

旅行者

贪心 加油站问题

文章目录一、问题描述二、实验分析三、完整代码四、实验总结 一、问题描述 一个旅行家想驾驶汽车从城市A到城市B(设出发时油箱是空的)。给定两个城市之间的距离dis、汽车油箱的容量c、每升汽油能行驶的距离d、沿途油站数n、油站i离出发点的距离d[i]以及该站每升汽油的价格p[i],i=1,2,…,n。设d[1]=0<d[2]<…<d[n]。要花最少的油费从城市A到城市B,在每个加油站应加多少油,最少花费为多少? Input 输入的第一行是一个正整数k,表示测试例个数。接下来几行是k个测试例的

m0_51336041的博客 1992

加油问题贪心算法求解

一个旅行家想驾驶汽车从城市A到城市B(设出发时油箱是空的)。给定两个城市之间的距离dis、汽车油箱的容量c、每升汽油能行驶的距离d、沿途油站数n、油站i离出发点的距离d[i]以及该站每升汽油的价格p[i],i=1,2,…,n。设d[1]=0<d[2]<…<d[n]。要花最少的油费从城市A到城市B,在每个加油站应加多少油,最少花费为多少?

甲乙从A地到B地小车利用问题

甲、乙两人同时从A地出发要尽快同时赶到B地。出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人。已知甲、乙两人的步行速度一样,且小于车的速度。问:怎样利用小车才能使两人尽快同时到达。

蓝桥杯刷题总结---第六周

蓝桥杯刷题,最后一周,周六考试

qq_58158487的博客 2253

加油站加油问题(贪心算法)

第一行有2 个正整数n和 k,表示汽车加满油后可行驶n公里,且旅途中有k个加油站 。接下来的1 行中,有 k+1个整数,表示第 k个加油站与第k-1个加油站之间的距离。 第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地。

Python:旅行家的预算(贪心法)

一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。第 i+1 行,两个数字,油站 i 离发点的距离 Di​ 和每升汽油价格 Pi​。输出所需最小费用,计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出。油站 i 离出发点的距离 Di​、每升汽油价格 Pi​。发点每升汽油价格 P 和沿途油站数 N。第一行,D1​,C,D2​,P,N。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出。每升汽油能行驶的距离 D2。城市之间的距离 D1。

qq_65144447的博客 404

Cadence HDL原理图库避坑指南:从Excel导入引脚到解决‘V- V+’报错(附FPGA实例)

本文详细介绍了Cadence HDL原理图库的高效构建与排错方法,重点讲解如何从Excel智能导入引脚数据并优化FPGA封装设计。通过数据预处理、智能导入和深度排错三个关键阶段,帮助工程师避免常见错误如‘V- V+’报错,提升设计效率和准确性。

weixin_28739079的博客 236

保姆级教程:用ncnn把自训练的YOLOv8模型塞进Android App(附完整代码)

本文提供了一份详细的保姆级教程,指导开发者如何将自训练的YOLOv8模型通过ncnn框架部署到Android应用中。教程涵盖环境配置、模型训练与转换、Android工程集成及性能优化等全流程,并附完整代码实现,帮助开发者快速掌握移动端AI模型部署技术。

weixin_42659194的博客 256

codevs 1046 旅行家的预算

#include #include #include #include #include #include #include using namespace std; double rest=0,xuyao,p[10],s,c,t,d[10],daan=0; int k=0,j=0,xiao1=0,xiao2=0,back=0; int n,i; /* 作者:devvs 题目:p10

devvs的博客 466

IsaacGym四足机器人sim to real全过程详细解析(walk these ways方法)

本文使用强化学习的方法运行到Aliengo机器人上完成从训练到部署的全过程。该方法使用的是GO1机器人提供了完整的sim to real代码和遥控器控制代码,所以我们只需要重新训练和部署健康就可以使用在Aliengo上。该方法使用lcm进行通讯首先程序通过UDP和机器人控制板进行通讯获取机器人状态并下达指令。然后又通过lcm进行机器人状态信息的发布和模型命令的获取。

weixin_44061195的博客 2万+

CODEVS 1046 旅行家的预算

题目描述 Description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Soluti

jjs98 827

【open judge】【程设】魔兽世界三开战!

#程设 魔兽世界三---开战!--------原以为会很容易ac,没想到写了好久,看来自己的水平还是亟待提高啊!有几个比较有趣的点:1. typeid(#include&lt;typeinfo&gt;)还是比较好用的,特别是本题当战士为wolf,iceman, dragon, ninja时有特殊技能,那么用typeid判断一下就很方便了。2. 对于这种输出很复杂的问题,往往通过使用文件的输入输出再...

weixin_40841416的博客 6073

让AI镜头“活”起来:22个核心运镜提示词,告别视频画面呆板

介绍了22种影视级镜头语言的AI提示词用法。内容涵盖推轨/后拉镜头等距离变化技巧、横摇/俯仰等方向控制手法、环绕/升降等空间位移方式,以及POV视角等特殊构图。

weixin_43489601的博客 6282

codevs 1046 旅行家的预算(贪心)

*PS:原来加油是不需要一升一升加的么qwq 题目描述 Description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法

Loi_Mapleleaf的小池 584

MMWCAS-DSP-EVM与AWR2243实战:从开箱到数据采集的完整避坑指南

本文提供了MMWCAS-DSP-EVM与AWR2243毫米波雷达评估板从开箱、软硬件准备、固件烧录到数据采集的完整实战指南。重点解析了硬件连接、软件版本匹配、固件烧录、网络配置及MMWave Studio GUI操作等关键步骤,并汇总了常见问题排查方法,帮助开发者快速上手并规避常见陷阱。

algae的博客 504

T1046 旅行家的预算 codevs

http://codevs.cn/problem/1046/ 题目描述Description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。...

weixin_30402343的博客 64

电子发票二维码背后的秘密:10分钟看懂校验码、加密字符含义与防伪设计

本文深入解析电子发票二维码的结构与防伪设计,揭示校验码和加密字符的生成原理及验证方法。通过实际案例和技术细节,帮助财务人员理解电子发票的安全机制,提升防伪识别能力,确保税务合规。

weixin_29248611的博客 530

枚举 ACS 电机状态位 完全解析

本文解析了ACS运动控制器SDK中的MotorStates枚举,该枚举对应控制器状态标志位?MFLAGS。主要介绍了6个核心状态:ACSC_ALL(-1)表示所有轴,ACSC_NONE(0)为空闲状态,ACSC_MST_ENABLE(1)为轴使能,ACSC_MST_INPOS(16)表示到位,ACSC_MST_MOVE(32)为运动中,ACSC_MST_ACC(64)为加速中。文章还补充了完整的枚举定义,包含报警、回零等状态,并提供了在晶圆AOI4轴运动中的典型应用场景,如判断轴状态、运动条件等。最后强调只

StevenChen的博客 247

【NOIP1999】【Codevs 1046】旅行家的预算

http://codevs.cn/problem/1046/ Solution: 贪心,如果当前油价很低,它就比起当前剩余油的价还低就可以替换,并且每次加满,最后把剩的油卖掉即可 油价用单调链表(不知到为什么会写链表,脑抽,当时觉得插入方便,其实不用插入。。。尴尬)维护 or 堆(你也可以脑抽,加个log),没事啦,数据水 // <travel.cpp> - 06/23/1...

weixin_30898109的博客 102

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

洛谷 1016 / codevs 1046 旅行家的预算

https://www.luogu.org/problem/show?pid=1016 http://codevs.cn/problem/1046/ 题目描述Description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(...

weixin_34291004的博客 146

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: [队内测试Day10.22T4][洛谷P2680]运输计划
下一篇: [错题记录][vijos1280]The Moment-遇见
LOI_pingxing
博客等级 码龄10年 24粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值