题意:有 1∼n1 \sim n1∼n nnn 个城市排成一行,给定每个城市的单位距离油价和两个城市间的距离、油箱容量,求 111 到 nnn 最小代价。

用 multiset 来维护当前油箱中的油的价格。

在每个城市假装把油加满。如果发现这个城市的油比油箱里的一些便宜,就把这些油都退掉。

跑的时候用油箱里最便宜的油。到达终点后如果有多余的油就全部退掉。

合法性:退掉的油是从买的时候到现在为止没有用过的,退掉相当于没有买。

最优性:因为每次油都加满了,如果不优会被退掉,感性理解是最优的。

复杂度 O(nlog⁡n)O(n\log n)O(nlogn)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <set>
#include <utility>
#define MAXN 100005
using namespace std;
typedef long long ll;
inline int read()
{int ans=0;char c=getchar();while (!isdigit(c)) c=getchar();while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();return ans;
}
int d[MAXN],c[MAXN];
typedef pair<int,int> pi;
multiset<pi> s;
int main()
{freopen("drive.in","r",stdin);freopen("drive.out","w",stdout);int n,m;n=read(),m=read();for (int i=1;i<=n;i++) d[i]=read();d[n+2]=d[n+1]=d[n];for (int i=1;i<=n;i++) c[i]=read();int res=m;ll ans=0;for (int i=1;i<=n+1;i++){while (!s.empty()&&s.rbegin()->first>=c[i]) res+=s.rbegin()->second,ans-=(ll)s.rbegin()->first*s.rbegin()->second,s.erase(--s.end());s.insert(make_pair(c[i],res)),ans+=(ll)c[i]*res,res=0;int t=res=d[i+1]-d[i];if (t>m) return puts("-1"),0;while (!s.empty()&&t>=s.begin()->second) t-=s.begin()->second,s.erase(s.begin());if (!s.empty()){pi tmp=*s.begin();s.erase(s.begin());tmp.second-=t;s.insert(tmp);}}cout<<ans;return 0;
}

【NOIP模拟】开車【回退贪心】【multiset】相关推荐

  1. 2018.10.26 NOIP模拟 瓶子 (dp/贪心)

    传送门 正解是dp并不想去想了. 自己yy了一个贪心拿了95pts95pts95pts,唯一没过的点还只有一个地方错了,面向数据变成之后过啦! 所以我讲讲如何贪心. 考虑到最后都只会合并成一种颜色,所 ...

  2. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  3. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  4. Noip 模拟练习5

    Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...

  5. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  6. [CQOI2012]模拟工厂 题解(搜索+贪心)

    [CQOI2012]模拟工厂 题解(搜索+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327574 链接题目地址:洛谷P3161 BZOJ P26 ...

  7. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  8. 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26

    背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...

  9. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  10. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

最新文章

  1. mogileFS 分布式存储-安装手记
  2. 低锁单例模式D语言实现
  3. Stanford NLP
  4. cbc cryptojs 前后端_前端CryptoJS AES/DES加解密与后端PHP AES/DES加解密
  5. c++primer 4th edithon 第324页的一个练习题(9.43和9.44)
  6. [html] 说说你对属性data-的理解
  7. linux php oauth安装,Linux php 扩展安装 mongo ,redis ,soap,imap,pdo_mysql,oauth
  8. 工业设计对计算机技术的应用,计算机在产品设计的应用
  9. 自己总结的sql基本操作
  10. 老电脑linux内核,如何删除废旧的Linux内核(kernel)
  11. 成功唯一的通道就是必须迷上你所做的事
  12. bzoj 3625(CF 438E)The Child and Binary Tree——多项式开方
  13. 企业网站的生命周期到底有多长 如何能够持续性发展下去
  14. html超链接点不了_Html使文本可点击而不会超链接
  15. java二进制流_java读写二进制流
  16. 联想小新潮5000 完美黑苹果 EFI文件
  17. 登录失败 12306服务器不稳定,12306无法正常登录怎么办?12306登陆不上的解决方法...
  18. 如何获取android手机mac地址,Android手机如何获取Mac地址
  19. 最新Android 黄油刀(Butterknife)的简单使用
  20. 这里整理了基于java平台的常用资源

热门文章

  1. 被一帮小姐姐围着是什么感觉?
  2. java里面什么时候环境变量_Java的环境变量什么时候需要设置?
  3. 面试避坑手册之 Java字节流和字符流总结IO流!
  4. eeprom 数据偶尔变成ff_关于水电站冗余配置下监控系统下发调节令偶尔不动作的案例分析...
  5. linux 下运行libnids,libnids出错
  6. liunx+java+jar+运行_Linux后台运行java的jar包
  7. ksu7对讲机调频软件_数字对讲机的群呼功能原理是什么?你了解多少?
  8. 各纬度气候分布图_欧洲气候特征:以温带气候类型为主,是海洋性气候最显著的大洲...
  9. leetcode117. 填充每个节点的下一个右侧节点指针 II(层序遍历08)
  10. leetcode707:设计链表(增删差)