题解:
贪心??个人感觉贪心的思维不难,总觉得像个模拟题。
我们可知目的地也是一个点,我们将目的地的距离也加入到数组里面去,并且油价设置为0.
然后按照距离进行排序。
1.首先我们去暴力处理一下达不到最终点的情况。
也就是第一个加油站不在0的位置,或者有两个加油站之间的距离大于车装满油最多能跑的距离。
2.再贪心处理可以到达目的地的情况。
如何贪心。
首先我们用一个值模拟当前油箱的油量。

(1).我们总当前在的车站往后暴力查找,如果找到一个油价比当前车站低的地方(能在满油箱的状况下到达的距离),我们直接记录下车站位置。并把油箱中的油加到能跑到目的车站即可。
(2).如果查找不到,那么表明目前加油站是最低的了,我们直接加满油即可,然后去往下一个加油站,查找从下一个加油站开始能跑的最远距离。
重复以上过程即可,用pre记录上一个车呆在的地方,i代表当前车在的地方。

代码:

/*Keep on going Never give up*/
//#pragma GCC optimize(3,"Ofast","inline")
//#include<bits/stdc++.h>
#include<iostream>
#include<string>
#include<cmath>
#include<vector>
#include<algorithm>
#include<queue>
#include<string.h>
//#define int long long#define endl '\n'using namespace std;
const int maxn=1e4+10;
const int mod=1e9+7;vector<pair<double,double> > v;signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);double c,e,d;int n;cin>>c>>e>>d>>n;for(int i=0;i<n;i++){double x,y;cin>>x>>y;v.push_back({y,x});}sort(v.begin(),v.end());v.push_back({e,0});n=n+1;bool ok=true;double imax=0;double maxdis=c*d;for(int i=1;i<n;i++){if(v[i].first-v[i-1].first>maxdis){ok=false;imax=v[i-1].first+maxdis;break;}}if(v[0].first!=0){printf("The maximum travel distance = 0.00");return 0;} else if(!ok){printf("The maximum travel distance = %.2f",imax);return 0;}double sz=0;double ans=0;int i=0,pre=0;while(true){sz=(sz-(v[i].first-v[pre].first)/d);if(i==n) break;pre=i;bool flag=false;double imin=v[i].second;int pos;for(int j=i+1;j<n;j++){if(v[j].first-v[i].first>maxdis) break;if(imin>v[j].second){imin=v[j].second;pos=j;flag=true;break;}}if(!flag){ans+=(c-sz)*v[i].second;sz=c;i++;}else{if(sz*d>=v[pos].first-v[i].first) sz=sz;else{ans+=((v[pos].first-v[i].first)/d-sz)*v[i].second;sz=(v[pos].first-v[i].first)/d;}i=pos;}}printf("%.2f",ans);}

1033 To Fill or Not to Fill (25 分)相关推荐

  1. codeUp 2031 To fill or not to fill 复杂贪心

    2031: To Fill or Not to Fill 时间限制: 1 Sec  内存限制: 32 MB 提交: 599  解决: 132 With highways available, driv ...

  2. 数组的fill方法_数组fill()方法以及JavaScript中的示例

    数组的fill方法 JavaScript fill()方法 (JavaScript fill() method) fill() method is used fill the array with a ...

  3. A1033 To Fill or Not to Fill

    Powered by:NEFU AB-IN Link 文章目录 A1033 To Fill or Not to Fill 题意 思路 代码 A1033 To Fill or Not to Fill 题 ...

  4. 7-57 愿天下有情人都是失散多年的兄妹 (25 分)(深搜)

    7-57 愿天下有情人都是失散多年的兄妹 (25 分) 呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对 ...

  5. 7-2 列出连通集 (25分)

    文章目录 7-2 列出连通集 (25分) 输入格式: 输出格式: 输入样例: 输出样例: 题解 伪代码 代码 7-2 列出连通集 (25分) 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别 ...

  6. 【PAT甲级A1003 】Emergency (25分)(c++)

    1003 Emergency (25分) 作者:CHEN, Yue 单位:浙江大学 代码长度限制:16 KB 时间限制:400 ms 内存限制:64 MB As an emergency rescue ...

  7. L2-036 网红点打卡攻略 (25 分)(哈密顿回路)

    题目链接: 题目详情 - L2-036 网红点打卡攻略 (25 分) (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/prob ...

  8. 7-3 Summit (25分)

    7-3 Summit (25分) A summit (峰会) is a meeting of heads of state or government. Arranging the rest area ...

  9. 19年冬季第二题 PAT甲级 1166 Summit (25分)

    7-3 Summit (25分) A summit (峰会) is a meeting of heads of state or government. Arranging the rest area ...

  10. 1003 Emergency (25 分)

    1003 Emergency (25 分) 题目大意 n个城市m条路,每个城市有救援小组,所有的边的边权已知.给定起点和终点,求从起点到终点的最短路径条数以及最短路径上的救援小组数目之和.如果有多条就 ...

最新文章

  1. java int 0.5_java int转float精度缺失原因?
  2. (004) java后台开发之Eclipse(Neon) 版本安装Java EE插件
  3. ABAP实现粘贴板的操作,复制粘贴
  4. [转] 全面了解Windows任务管理器
  5. 实战SSM_O2O商铺_12【商铺注册】View层之前台页面
  6. Python基础——PyCharm版本——第八章、文件I/O(核心3、csv和excel解析)
  7. 从css样式表中抽取元素尺寸
  8. Linux 系统应用编程——网络编程(常用命令解析)
  9. Java 递归创建目录
  10. 电脑刷机重装系统_手机刷机,原来也没有那么复杂
  11. mysql从库数据源_SoapUI Pro教程:如何使用MySQL服务器作为数据源-从MySQL数据库获取数据...
  12. 一天到晚都在转笔,不需要写代码、调试,用眼看就行了?
  13. 181108每日一句
  14. live2d动态壁纸android,Live2DViewerEX动态壁纸
  15. spring集成sitemesh3
  16. swper_swiper
  17. 2019年西工大附中分校民办小升初电脑随机派位录取结果
  18. 什么是操作系统中所说的原语(Primitives)
  19. 【转】企业微信自动打卡设置
  20. 51NOD 1024 矩阵中不重复的元素

热门文章

  1. ubuntu18.04安装python虚拟环境:virtualenv 【亲测有效】
  2. 【Linux】Ubuntu的一些高(sao)效(cao)率(zuo)工具
  3. 深度学习 Optimizer 梯度下降优化算法总结
  4. 10个例子带你了解机器学习中的线性代数
  5. 使用 NumPy 的标准化技巧
  6. 伯克利大神一人投中16篇!ICLR 2021论文接收统计出炉
  7. 基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线
  8. python基础-变量运算符(3)
  9. Redis 数据结构-字典源码分析
  10. Kubernetes 1.8.4 手动安装教程-安装Dashboard(七)