洛谷 P1016 旅行者的预算

感觉自己连点生活常识都没有,竟然连油用过之后要减去都不知道,这种贪心模拟题都做不出来……思路在代码里,我菜死了

思路&&代码

//看题解过的。。一点都没有成就感
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; inline int read() {//快读
char c = getchar();
int x = 0, f = 1;
for ( ; !isdigit(c); c = getchar()) if (c == '-') f = -1;
for ( ; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + (c ^ 48);
return x * f;
} const int N = 11; double d1, d2, c, P, ans;//如题目所说
double now, minn = 1000, you;
//now是当前位置,you是指邮箱里还有多少油,minn用来找小于当前p的p
int n, sjp;
//sjp是当前所在加油站的编号 struct node {//结构体存位置
double d, p;
bool operator < (const node &b) const {
return d < b.d;
}
} e[N]; int main() {
scanf("%lf%lf%lf%lf", &d1, &c, &d2, &P);
n = read();
e[0].d = 0, e[0].p = P;//按要求读入
for (int i = 1; i <= n; i++) scanf("%lf%lf", &e[i].d, &e[i].p);
stable_sort(e, e + 1 + n);//排序保险
double x = c * d2;//加满油走的最远路程
for(int i = 1; i <= n; i++)
if(e[i].d - e[i - 1].d > x) return cout << "No Solution", 0;
//如果两加油站之间的距离大于最远路程,则无解
while(d1 - now) {//d1是总路程,如果d1-now等于0则走到了终点
for(int i = sjp + 1; e[i].d - now <= x &&i <= n; i++) {
if(e[i].p < minn) {//找有没有在最远路程范围内的p小于P的
minn = e[i].p;//如果有就更新,顺便sjp=i
sjp = i;
}
}
if(minn <= P) {
//找到了最远路程范围内比自己的价钱还便宜的
//就让在目前点加的油刚好能够到这个加油站
ans += ((e[sjp].d - now) / d2 - you) * P;
you = (e[sjp].d - now) / d2;//更新油量
}
else if(d1 - now <= x) {
//如果没找到,但d1-now小于x
//说明可以一次到终点,直接到终点并break
ans += ((d1 - now) / d2 - you) * P;
break;
}
else {
//否则就加满油,一直走
//因为在最大范围内也不能走到比当前加油站价钱低的加油站
ans += (c - you) * P;
you = c;//更新油量
}
you = you - (e[sjp].d - now) / d2;//用多少减多少
now = e[sjp].d;//更新当前位置
P = minn;//更新目前的单价
minn = 1000;//还原minn,以便下次搜索
}
printf("%.2lf", ans);
return 0;
}

洛谷 P1016 旅行者的预算的更多相关文章

  1. 洛谷 P1016 旅行家的预算

    P1016 旅行家的预算 题目OJ链接https://www.luogu.org/problemnew/show/P1016 题目描述一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时 ...

  2. 洛谷 P1016 旅行家的预算 模拟+贪心

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1016 旅行家的预算 题目描述 一个旅行家想驾驶汽车 ...

  3. 洛谷P1016 旅行家的预算 题解

    主要就是注意一下各个变量的类型别弄混了 https://www.luogu.org/problem/P1016 #include<cstdio> using namespace std; ...

  4. 洛谷P1016 旅行家的预算

    题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...

  5. [NOIP1999] 提高组 洛谷P1016 旅行家的预算

    题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...

  6. 洛谷P1064--金明的预算方案(简单背包)

    https://www.luogu.org/problemnew/show/P1064 #include<iostream> #include<algorithm> #incl ...

  7. 洛谷P1064 金明的预算方案

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”. ...

  8. 洛谷 P5304 [GXOI/GZOI2019]旅行者(最短路)

    洛谷:传送门 bzoj:传送门 参考资料: [1]:https://xht37.blog.luogu.org/p5304-gxoigzoi2019-lv-xing-zhe [2]:http://www ...

  9. 洛谷 P2678 跳石头

    题目背景 一年一度的"跳石头"比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间 ...

随机推荐

  1. cURL error 60: SSL certificate problem: unable to get local issuer certificate(转)【亲测】

    php5.6以上的版本会出现这种问题 解决办法: [开启拓展] extension=curl extension=openssl [配置证书] 访问https://curl.haxx.se/docs/ ...

  2. docker 通过中间镜像加速部署

    概要 实施 修改前的实施时间 制作编译用的镜像 测试修改后的实施时间 概要 使用 docker 打包镜像的时候, 每次耗费时间最多的就是 docker build 的过程. 特别是对于前端工程的打包, ...

  3. UVA 291 The House Of Santa Claus DFS

    题目: In your childhood you most likely had to solve the riddle of the house of Santa Claus. Do you re ...

  4. java截取字符串中的最后几个字符

    Java中的String类提供了一个substring(int from, int to)方法用于截取字符串中位置为from到to-1位置的字符. 因为字符串的字符位置是从0开始的,而substrin ...

  5. 修改设置notepad++默认保存文件格式

    设置notepad++保存文件的默认格式 在使用notepad++新建文件保存后,有的时候会有一个all type 然后没有文件扩展名,很不方便 网上有很多帖子都是如下图所示的提示,但是却不生效

  6. 2019大厂Java岗面试题全曝光,刷完这1020道,金三银四大厂等你

    2019大厂Java岗面试题全曝光,刷完这1020道,金三银四大厂等你 前言: 本文收集整理了各大厂常见面试题N道,你想要的这里都有 内容涵盖:Java.MyBatis.ZooKeeper.Dubbo ...

  7. mssql附加的数据库查询的时候没有搜索权限

    1.选中数据安全性-登录名-选择某个账户-右键-属性 2.服务器角色-选择public和systemadmin 3.用户映射-选中库-下面选中public 和owner

  8. 关于javascript,多种函数封装!!

    1.获取最终的属性 function getStyleAttr(obj, attr){ if(window.getComputedStyle){ return window.getComputedSt ...

  9. Scrum 冲刺第二篇

    我们是这次稳了队,队员分别是温治乾.莫少政.黄思扬.余泽端.江海灵 一.会议 1.1  26号站立式会议照片: 1.2  昨天已完成的事情 团队成员 任务内容 黄思扬 Web 端首页.内容管理页开发. ...

  10. 处理 JS中 undefined 的 7 个技巧

    摘要: JS的大部分报错都是undefined... 作者:前端小智 原文:处理 JS中 undefined 的 7 个技巧 Fundebug经授权转载,版权归原作者所有. 大约8年前,当原作者开始学 ...