Codeforces Round #523 (Div. 2) D. TV Shows 模拟(多重集 先把所有区间加入多重集合)+贪心+二分
题意:给出n个电视节目的起始和结束时间 并且租一台电视需要x +y*(b-a) 【a,b】为时段
问完整看完电视节目的最小花费是多少
思路:贪心的思想 情况1 如果新租一台电视的花费<=在空闲电视上面看节目 那么肯定新租电视
情况2 否则就直接在空闲电视上看 就好
模拟难(QAQ): 这里使用多重集合模拟 先把所有时间的pair(结束时间,开始时间) 放入多重集里面
然后开一个数组以l 从小到大排序
从数组小到大 枚举 在多重集里面找离终点最近的那个点 如果符合情况1 那么就删去 找到的那个点即可(因为 刚开始多重集有所有的区间 所以不用添加)
否则情况2 直接加上值即可
- #include<bits/stdc++.h>
- #define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++)
- #define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr))
- #define F first
- #define S second
- #define pii pair<int ,int >
- #define mkp make_pair
- #define pb push_back
- #define arr(zzz) array<ll,zzz>
- #define ll long long
- using namespace std;
- const int maxn=1e6+;
- const int inf=0x3f3f3f3f;
- const int mod=1e9+;
- vector<pii>v;
- multiset<pii>s;
- int main(){
- int n,x,y;
- scanf("%d%d%d",&n,&x,&y);
- int a,b;
- for(int i=;i<=n;i++)scanf("%d%d",&a,&b),v.pb({a,b}),s.insert({b,a});
- sort(v.begin(),v.end(),[](pii a,pii b){return a.F<b.F;});
- ll ans=;
- for(int i=;i<n;i++){
- ll tmp=x+1ll*y*(v[i].S-v[i].F);
- if(s.size()==||(*s.begin()).F>=v[i].F){
- ans+=tmp;
- ans%=mod;
- continue;
- }
- multiset<pii>::iterator it=s.lower_bound({v[i].F,-});
- it--;
- if(tmp<=1ll*y*(v[i].S-(*(it)).F)){
- ans+=tmp;
- ans%=mod;
- continue;
- }
- ans+=1ll*y*(v[i].S-(*(it)).F);
- ans%=mod;
- s.erase(it);
- }
- cout<<ans<<endl;
- return ;
- }
Codeforces Round #523 (Div. 2) D. TV Shows 模拟(多重集 先把所有区间加入多重集合)+贪心+二分的更多相关文章
- Codeforces Round #523 (Div. 2) D. TV Shows
传送门 https://www.cnblogs.com/violet-acmer/p/10005351.html 题意: 有n个节目,每个节目都有个开始时间和结束时间. 定义x,y分别为租电视需要的花 ...
- Codeforces Round #523 (Div. 2)
Codeforces Round #523 (Div. 2) 题目一览表 来源 考察知识点 完成时间 A Coins cf 贪心(签到题) 2018.11.23 B Views Matter cf 思 ...
- Codeforces Round #368 (Div. 2) B. Bakery (模拟)
Bakery 题目链接: http://codeforces.com/contest/707/problem/B Description Masha wants to open her own bak ...
- Codeforces Round #523 (Div. 2) Solution
A. Coins Water. #include <bits/stdc++.h> using namespace std; int n, s; int main() { while (sc ...
- Codeforces Round #284 (Div. 2)A B C 模拟 数学
A. Watching a movie time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Codeforces Round #285 (Div. 2) A B C 模拟 stl 拓扑排序
A. Contest time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- Codeforces Round #523 (Div. 2) E. Politics(最小费+思维建图)
https://codeforces.com/contest/1061/problem/E 题意 有n个点(<=500),标记第i个点的代价a[i],然后分别在这n个点建两棵树,对于每颗树的每个 ...
- Codeforces Round #523 (Div. 2) F. Katya and Segments Sets (交互题+思维)
https://codeforces.com/contest/1061/problem/F 题意 假设存在一颗完全k叉树(n<=1e5),允许你进行最多(n*60)次询问,然后输出这棵树的根,每 ...
- Codeforces Round #523 (Div. 2) Cdp
题:https://codeforces.com/contest/1061/problem/C 题意:给你一个序列,我们求他们子序列的个数,这个子序列有个限制就是每一个子序列上的值都必须是能整除他的下 ...
随机推荐
- Vue-zTree
在vue中引入zTree,和引入其他组件类似,首先在main.js里将以下3个js引入: import "./js/jquery-3.3.1.min.js";import &quo ...
- Spring-注解实现IOC
一.定义 注解:是一种标记式的配置方式,与XML配置文件不同,注解提供了更大的便捷性,易于维护修改,但是耦合度高. 本质:是一个继承了 Annotation 接口的接口,注解本身并没有什么作用,通过特 ...
- python 自定义模块的发布和安装
[学习笔记] 自定义模块 使用的是pycharm 说白了就是.py文件都可以作为模块导入,像定义一个文件 名字为Mycode __all__ = ["add","sub& ...
- Unable to execute 'doFinal' with cipher instance [javax.crypto.Cipher@4e025e0a]
org.apache.shiro.crypto.CryptoException: Unable to execute 'doFinal' with cipher instance [javax.cry ...
- 【修复】当Deepin开机进入BusyBox时修复
第一次发生这种状况,是因为上一次关机时我直接断电了(并非故意的,我用了deepin一个月出了好几次关机后死机╮(╯▽╰)╭) 参考: 爱之墨色(完美解决)linux 开机进入initramfs无法开机 ...
- 禁用了传说中的PHP危险函数之后,Laravel的定时任务不能执行了?
虽然已是 2018 年,但网上依然流传着一些「高危 PHP 函数,请一定要禁用!」的标题党文章(搜索关键字:一些需要禁用的PHP危险函数). 这些文章的内容简单直接,给出 php.ini 的 disa ...
- JavaScript实现获取两个排序数组的中位数算法示例
本文实例讲述了JavaScript排序代码实现获取两个排序数组的中位数算法.分享给大家供大家参考,具体如下: 题目 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个 ...
- 通用查询类封装之Mongodb篇
查询在应用程序中很重要,花样也特别多,不同得业务需求需要不同的查询条件,还要支持and.or ……事实上也确实如此,程序中有N多个查询类,并且很可能其中有多个类查询同一张表,所以特别想弄一个通用的查询 ...
- 工具资源系列之给mac装个虚拟机
mac 系统安装虚拟机目前有两种主流软件,一种是 Parallels Desktop ,另一种是 vmware. 本教程选用的是 vmware ,因为我之前 windows 上安装的虚拟机软件就是vm ...
- 自托管websocket和webapi部署云服务器域名及远程访问
当写完websocket和webapi服务端时,在本地测试时是没有问题的,因为是通过本地IP及端口号访问(例:127.0.0.1:8080\api\test),也就没有防火墙等安全限制,但当部署到云服 ...