Canada Cup 2016 D. Contest Balloons
最近好弱做什么题目都是做一晚上
这是合肥站炼铜后遗症?
这题就是贪心
我已开始还写了1小时………三分…………….
#include<bits/stdc++.h>
using namespace std;
#define sz(X) ((int)X.size())
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int N = 3e5+5;
struct Node{
int id; ll t, w;
}p[N];
bool cmp1(Node a,Node b) {
if(a.t != b.t) return a.t < b.t;
else return a.id > b.id;
}
int main(){
int n;
while(~scanf("%d",&n)) {
priority_queue<ll,vector<ll>,greater<ll>> Q;
for(int i = 1; i <= n; ++i) {
scanf("%lld %lld",&p[i].t,&p[i].w); p[i].id = i;
}
int ans = INF;
int tmp = 1;
sort(p+1, p+n+1,cmp1);
int fl = 0;
ll ret = 0; ll pre;
for(int i = n; i >= 1; --i) {
if(fl) {
ret += pre - p[i].t;
if(pre == p[i].t) {
tmp ++; Q.push(p[i].w - p[i].t + 1);
continue;
}
pre = p[i].t;
while(!Q.empty()) {
ll x = Q.top();
if(x > ret) break;
Q.pop(); ret -= x; tmp --;
}
ans = min(ans, tmp);
tmp ++; Q.push(p[i].w-p[i].t+1);
}else {
if(p[i].id == 1) {
fl = 1; ans = min(ans, tmp);
pre = p[i].t;
}else {
Q.push(p[i].w-p[i].t+1);
// if(n == 7) printf("%lld %d\n",p[i].t,tmp);
tmp ++;
}
}
}
ret += pre;
while(!Q.empty()) {
ll x = Q.top();
if(x > ret) break;
Q.pop(); ret -= x; tmp --;
}
ans = min(ans, tmp);
printf("%d\n", ans);
}
return 0;
}
Canada Cup 2016 D. Contest Balloons的更多相关文章
- Canada Cup 2016 D. Contest Balloons 好题。优先队列 + 简单贪心
http://codeforces.com/contest/725/problem/D 这题一看就是贪心的了,w - t最小的那个,肯定是优先打死. 但是一直都不会写,为什么呢,因为这个太像二分答案了 ...
- 【Codeforces Round 725】Canada Cup 2016
模拟Canada Cup 2016,ABC三题,Rank1376 第三题卡住了 Codeforces 725 C 求出两个相同字符的位置,记为x和y. 然后考虑把相同的那个字符放在第一行的什么地方, ...
- Canada Cup 2016 C. Hidden Word 构造模拟题
http://codeforces.com/contest/725/problem/C Each English letter occurs at least once in s. 注意到题目有这样一 ...
- Codeforces Canada Cup 2016
A. Jumping Ball time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Canada Cup 2016 C. Hidden Word
C. Hidden Word time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- CodeForces Canada Cup 2016【A,B,C,D】
CodeForces 725A: 思路就是如果"最左"不是'>'这个了,那么这个右边的一定不可能到达左边了: 同理最右: CodeForces 725B: 有两个空姐,一个从 ...
- codeforces 725D . Contest Balloons(贪心+优先队列)
题目链接:codeforces 725D . Contest Balloons 先按气球数从大到小排序求出初始名次,并把名次排在第一队前面的队放入优先队列,按w-t-1值从小到大优先,然后依次给气球给 ...
- Contest Balloons
Contest Balloons 题目链接:http://codeforces.com/problemset/problem/725/D 贪心+枚举 每次在排名在自己前面的选出w-t值最小的送气球,更 ...
- CodeForces - 725D Contest Balloons 贪心
D. Contest Balloons time limit per test 3 seconds memory limit per test 2 ...
随机推荐
- 制作 alipay-sdk-java包到本地仓库
一.首先 搭建好maven 基础环境,本地可以运行maven 命令 从支付宝官网上下载sdk https://doc.open.alipay.com/doc2/detail?treeId=54& ...
- MySQL系统临时表、用户临时表
MySQL临时表分为系统使用的临时表和用户使用的临时表. 系统使用的临时表是指MySQL在执行某些SQL语句时需要依赖临时表来完成整个过程.系统使用的临时表的情况可以分为以下几种: * group ...
- 修改Java程序的进程名
1.修改tomcat进程名字: 当同一个服务器上启动多个tomcat后,我们会在任务管理器中看见多个java.exe,当我们需要对某个tomcat进行监控时,却无法区分出该tomcat的进程,那么如何 ...
- [Sdoi2017]数字表格 [莫比乌斯反演]
[Sdoi2017]数字表格 题意:求 \[ \prod_{i=1}^n \prod_{j=1}^m f[(i,j)] \] 考场60分 其实多推一步就推倒了... 因为是乘,我们可以放到幂上 \[ ...
- BZOJ 3566: [SHOI2014]概率充电器 [树形DP 概率]
3566: [SHOI2014]概率充电器 题意:一棵树,每个点\(q[i]\)的概率直接充电,每条边\(p[i]\)的概率导电,电可以沿边传递使其他点间接充电.求进入充电状态的点期望个数 糖教题解传 ...
- opencv-python与c++ opencv中的一些区别和基础的知识
使用opencv-python一段时间了,因为之前没有大量接触过c++下的opencv,在网上看c++的一些程序想改成python遇到了不少坑,正好在这里总结一下. 1.opencv 中x,y,hei ...
- 嵌入式linux系统的构建
前期工作:a.配置好tftp服务器:在嵌入式的童年中有介绍 b.开发板可以pc,linux 三者可以互相ping通 c.配置好nfs服务器:同样在嵌入式的童年中有介绍 一.嵌入式linux内核的制作( ...
- git取消文件跟踪
在使用git的时候,有些文件是不需要上传的,所以就可以修改 .gitignore 例如: 如果是对所有文件都取消跟踪的话,就是 git rm -r -cached . //不删除本地文件 git ...
- jumpserver在centos 7上的部署
cd /opt/git clone https://github.com/jumpserver/jumpserver.gitcd jumpservergit checkout master 准备安装: ...
- virsh 常用操作
virsh list 显示在运行的 虚拟机 virsh list --all 显示在运行和停止的虚拟机 ssh 192.168.0.115 通过网络连接子机 如果没有网络 可以通过 v ...