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

Python+AI能源管理实战:从电力负荷预测到智能调度的全流程开发 本系统展示了Python在能源管理领域的强大能力,通过AI技术实现了从预测到优化的智能决策闭环。随着碳中和目标的推进,智能能源系统将成为新型电力系统的核心大脑。📌 专业建议:系统部署需考虑网络安全防护,关键控制指令应设置多重验证机制!关注我的优快云账号获取能源系统安全最佳实践~下期预告:我们将探索Python在智慧医疗中的应用,开发基于多模态数据的智能诊断辅助系统。想提前获取代码?评论区留言"智慧医疗"获取GitHub源码链接! 阅读详情

*PS:原来加油是不需要一升一升加的么QWQ

题目描述 Description

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

输入描述 Input Description

第一行D1 C D2 P N

之后N行,每行2个数表示离出发点的距离Di和每升汽油的价格Pi

输出描述 Output Description

最消费用,保留2位小数

样例输入 Sample Input

275.6 11.9 27.4 2.8 2

102.0 2.9

220.0 2.2

样例输出 Sample Output

26.95

数据范围及提示 Data Size & Hint

N<=100

一道贪心题。
刚开始觉得挺简单的,后来发现有油量的限制,QAQ什么鬼啊。。。
然后开始贪心。。。
(我的思想和代码都比较麻烦qwq)
油加进去都是一样的,发现,如果当前的价格“较小”,油量又未满,那就多加点,答案一定不会更差。
问题就是怎么判断当前的价格“较小”。
记一个指针pos表示当前加到了哪个加油站,rest表示当前剩余的油量。
贪心策略:
在pos之后(pos时加满油)最远可到达的加油站中找一个价格最小的。
如果那个价格大于等于pos的价格,就把在pos时加满油箱。
否则就只把油加到刚好能到那个地方,再继续加油。

最后特判一下当前能刚好到终点还需加的油量输出答案就行了。

no solution的情况只需在输入时判断是否有在这个加油站加满油还无法到达下一个加油站的情况qwq。

代码
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;

int N,can,pos,j;
double D1,C,D2,rest,minn,ans;
double D[105],P[105];

int main()
{
    scanf("%lf%lf%lf%lf%d",&D1,&C,&D2,&P[0],&N);
    P[N+1]=1e9+7;
    if(N==0&&D1>C*D2) can=1;
    for(int i=1;i<=N;++i)
    {
        scanf("%lf%lf",&D[i],&P[i]);
        double k=D[i]-D[i-1];
        if(k>C*D2) can=1;   //处理no solution 的情况
    }
    if(!can)
    {
        while(pos<=N)
        {
            minn=P[pos+1],j=pos+1;
            for(int i=pos+1;i<=N&&(D[i]-D[pos])<=C*D2;++i)
               if(minn>P[i]) minn=P[i],j=i;  //找油价最小的一个
            double k=(D[j]-D[pos])/D2;
            if(minn>=P[pos]) 
            {
                if(minn>P[pos]&&(D1-D[pos])<=C*D2)    //如果当前加油站后没有油价比他更小的加油站并且在当前加油站加满油可以到达终点,就直接走到终点。
                {
                    k=(D1-D[pos])/D2;
                    if(rest<k) ans+=(k-rest)*P[pos];
                    break;
                }
                ans+=(C-rest)*P[pos]; //加满并走到那个加油站
                rest=C-k;
            } 
            else 
            {
                if(rest<k) ans+=(k-rest)*P[pos],rest=0; //刚好走到那里。
                else rest-=k;
            }
            pos=j;
        }
        printf("%.2f",ans);
    }
    else printf("No Solution");
    return 0;
}
C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内) 本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验! 阅读详情

相关推荐

Nordic nRF52832实战:手把手教你搭建智能手环BLE通信框架(附完整代码)

本文详细介绍了如何使用Nordic nRF52832芯片搭建智能手环的BLE通信框架,涵盖芯片优势、协议栈初始化、低功耗广播策略及健康数据服务实现。通过完整代码示例和架构设计,帮助开发者快速掌握蓝牙低功耗通信技术,适用于可穿戴设备开发。

weixin_29192141的博客 246

P1016 旅行家的预算

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

Recursions的博客 281

东方通TongWeb虚拟主机配置全流程:从创建到应用部署的保姆级教程

本文提供东方通TongWeb虚拟主机从创建、HTTP通道配置到应用部署的完整实战指南。重点解析虚拟主机的逻辑隔离价值、通道参数调优原理及企业级多应用部署架构,并涵盖常见报错排查与性能优化建议,旨在帮助运维和开发人员高效、稳定地完成应用系统部署。

oil88的博客 530

贪心算法解旅行家的预算问题

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

qq_41117896的博客 1862

TGAT Python:图神经网络中的动态图算法

其中,图神经网络中的动态图算法成为了研究的热点之一。在模型的 forward 方法中,通过循环调用 TGATLayer 实例来进行图神经网络的前向传播。最终,模型返回图中节点的表示向量 output,可以用于图分类等任务。TGAT 算法的核心思想是在节点之间建立注意力连接,以捕捉节点在不同时间步之间的关系。TGAT 算法通过引入注意力机制和时间信息,从而有效地对动态图数据进行建模和分析。通过以上 Python 代码,我们可以方便地构建和训练 TGAT 模型,并在图分类任务中应用它。

2301_79366435的博客 1826

利用 SAP Joule 提升 ABAP 开发效率的前提条件与限制全解析

综上,想要在 ABAP Development Tools 中顺利使用 SAP Joule,既要准备好 BTP、IAS、ABAP 系统与 ADT 的版本与信任链,也要理解许可证、配额、语法范围等限制。只有在这些前提全部满足后,Joule 才能真正发挥生成式 AI 的价值,帮助 ABAP 开发者从繁琐模板中解放出来,把注意力投入在业务创新与 Clean Core 改造之上。未来 SAP 还将扩展中文语境、自动修复建议以及跨系统智能代理等功能,值得持续关注。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 662

蓝桥杯训练——旅行家预算(贪心算法)

旅行家预算 贪心算法 蓝桥杯

xushuo的博客 1342

Ubuntu 系统下安装 OpenClaw(原 Clawdbot)的详细指南

Ubuntu 系统下安装 OpenClaw(原 Clawdbot)的详细指南

Science prince的博客 3535

贪心算法——旅行家的预算(NOIP1999)

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

Psychosocial的博客 3199

【系统分析师】高分论文:论面向对象设计方法及应用

本文以某市职业院校合并后的信息化系统建设项目为例,探讨了面向对象设计方法在系统开发中的应用。作为系统分析师,作者在415.6万元、6个月工期的项目中,通过遵循单一职责原则(简化构件库)、依赖倒置原则(开发公共接口)和开闭原则(构件扩展)等设计原则,成功完成了5个子系统融合改造和4个智慧实训室建设。项目采用J2EE分层设计和SOA架构,最终在2022年11月顺利上线,提升了教学管理效率,获得用户好评。文章总结了设计原则对提高系统复用性、可维护性的重要作用,同时也反思了部署过程中的经验教训。

数据知道的博客 7955

【华为OD机试真题】29、组成最大数 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

题目描述 >小组中每位都有一张卡片,卡片上是6位内的正整数,将卡片连起来可以组成多种数字,计算组成的最大数字

KJ.JK 2418

<基础训练>旅行家的预算(贪心算法)

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

木木的博客 4901

【毫米波混合波束成形】第3章 深度展开网络:将迭代优化嵌入计算图

相位提取算子 $P_\phi: \mathbb{C}^N \to \mathbb{C}^N$ 定义为逐元素相位归一化 $P_\phi(z) = \exp(j \cdot \angle z)$。该算子在复数域非全纯(Non-holomorphic),标准反向传播需扩展至Wirtinger微积分框架。对于复数变量 $z = x + jy$,Wirtinger导数定义:相位提取算子的Jacobian矩阵在极坐标下具有稀疏结构。

VectorShift的博客 406

CODEVS 1046 旅行家的预算

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

jjs98 827

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

codevs 1046 旅行家的预算

传送门 1046 旅行家的预算 1999年NOIP全国联赛普及组NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold题解 题目描述Description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城...

weixin_30711917的博客 97

OV9734 DATASHEET,完整规格书

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

[codevs1046]旅行家的预算

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

LOI_pingxing的博客 404

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

weixin_30898109的博客 102

洛谷 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

蓝桥杯 旅行家的预算 By Assassin [复杂的贪心]

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

Assassin 1916

旅行家的预算

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

xyf311的博客 364

noip--旅行家的预算

1916: 【贪心】旅行家的预算时间限制: 1 Sec  内存限制: 128 MB提交: 49  解决: 11[提交][状态][讨论版]题目描述一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格P...

sher杨的博客 693

【题解】旅行家的预算(贪心)

八中OJ 洛谷 这题太复杂了,能否全A看数据。。。 很好的一道模拟贪心题 算法原理(优先级)如下: 1.枚举途中经过的加油站,每经过一个加油站,计算一次花费 2.在一个加油站所需要加的油,就是能够支持它到达下一个油价比它低的加油站的量; 3.如果在这个加油站即使加满油,都不能到达一个比它油价低的加油站,(1)就把油箱加满,前往能够到达的加油站中油价最低的那个;(2)或者直接到终点; 4.如果在这个...

cqbzlydd的博客 1346
上一篇: 洛谷 2661 信息传递(暴力、tarjan)
下一篇: 洛谷 2587 泡泡堂(贪心)
Loi_Mapleleaf
博客等级 码龄10年 17粉丝 72原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值