codeforces 523D tatistics of Recompressing Videos
一个称为DH(DogHouse)的狗的社交网络有k台专用服务器来重新上传可爱的猫的上传视频。每个视频上传后,应该在一个(任何)服务器上重新压缩,之后才可以保存在社交网络中。
我们知道每个服务器需要一秒钟来重新压缩一分钟的片段。因此,任何服务器需要m秒钟来重新压缩m分钟的视频。
我们知道每个n个视频上传到网络的时间(从所有服务器开始工作的时间开始)。所有视频都会出现在不同的时刻,并按照他们出现的顺序重新压缩。如果有些视频出现在时间s,那么它的再压缩可以立即从那个时刻开始。当所有服务器都忙时,有些视频可以等待重新压缩。在这种情况下,只要服务器可用,它立即开始重新压缩另一个视频。正在等待重新压缩的视频进入队列。如果视频开始被重新压缩,那么有些服务器可用,那么其中任何一个开始重新压缩视频。
对于每个视频,找到停止重新压缩的那一刻。
输入:
第一行n,k<=5*10^5表示视频数,有k台服务器
接下来n行每行表示一个视频,分别是ai,bi<=10^9。为开始时间与压缩时间
输出:
每个点的最小结束时间
3 2
1 5
2 5
3 5
6
7
11
6 1
1 1000000000
2 1000000000
3 1000000000
4 1000000000
5 1000000000
6 3
1000000001
2000000001
3000000001
4000000001
5000000001
5000000004
数据保证是递增排序的,所以不要排序
所以直接贪心,当堆中满了,选择完成时间最靠前的视频pop
所以堆维护完成时间,算出视频完成时间后加入堆
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
typedef long long LL;
struct Node
{
LL a,b,num;
}a[];
priority_queue<LL, vector<LL>,greater<LL> >q;
LL n,m,sum,t[];
LL max(LL a,LL b)
{
if (a<b) return b;
else return a;
}
int main()
{LL i,j;
//freopen("water.in","r",stdin);
//freopen("water.out","w",stdout);
cin>>n>>m;
for (i=;i<=n;i++)
{
scanf("%I64d%I64d",&a[i].a,&a[i].b);
a[i].num=i;
}
//sort(a+1,a+n+1,cmp);
for (i=;i<=n;i++)
{
if (sum<m)
{
sum++;
q.push(a[i].a+a[i].b);
t[i]=a[i].a+a[i].b;
}
else
{
LL tmp=q.top();
q.pop();
q.push(max(tmp,a[i].a)+a[i].b);
t[i]=max(tmp,a[i].a)+a[i].b;
}
}
for (i=;i<=n;i++)
printf("%I64d\n",t[i]);
}
codeforces 523D tatistics of Recompressing Videos的更多相关文章
- D. Statistics of Recompressing Videos
D. Statistics of Recompressing Videos time limit per test 3 seconds memory limit per test 256 megaby ...
- 【codeforces】【Round#523D】TV shows
题意:n个节目,每个节目的播放时间为[li,ri],你需要选择一些电视机全部播放这些节目,一台电视机不能同时播放多个节目,选择一个新的电视机代价为x , 如果某台电视机的使用时间为[Li,Ri]需要付 ...
- Codeforces Round #588 (Div. 2) E. Kamil and Making a Stream(DFS)
链接: https://codeforces.com/contest/1230/problem/E 题意: Kamil likes streaming the competitive programm ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- CodeForces - 662A Gambling Nim
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
- CodeForces - 274B Zero Tree
http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...
随机推荐
- C语言最后一次作业——总结报告
1.当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 首先是因为自己想学跟做动画沾边的专业(动画专业因为某 ...
- UserControl 用户定义组件
<pages> <namespaces> <add namespace="System.Web.Optimization" /> </na ...
- 如何解决python中使用flask时遇到的markupsafe._compat包缺失的问题
在使用python进行GUI的程序编写时,使用flask时出现错误: 在使用pip freeze进行查看已下载的包时显示MarkupSafe与Jinjia2都已安装: 在网上查阅一些资料后发现,在py ...
- Flask 学习 五 电子邮件
pip install mail from flask_mail import Mail # 邮件配置 app.config['MAIL_SERVER']='smtp.qq.com' app.conf ...
- 如何使用ILAsm与ILDasm修改.Net exe(dll)文件
一.背景 最近项目组新上项目,交付的时间比较急迫,原本好的分支管理习惯没有遵守好,于是出现下面状况: 多个小伙伴在不同的分支上开发. 原本QA环境也存在一个阻碍性的bug A 一位同事在QA环境发布了 ...
- 《javascript设计模式与开发实践》阅读笔记(14)—— 中介者模式
中介者模式 数个对象之间的通信全部委托一个中介者完成.适用于对象之间互相引用,关系错综复杂的情况. 什么情况下需要使用中介者模式 对象较多,且对象间会相互引用,当一个对象的某个状态改变时,得通知其他对 ...
- vueJs 源码解析 (三) 具体代码
vueJs 源码解析 (三) 具体代码 在之前的文章中提到了 vuejs 源码中的 架构部分,以及 谈论到了 vue 源码三要素 vm.compiler.watcher 这三要素,那么今天我们就从这三 ...
- CentOS7下安装python-pip
一.检查是否已经安装 检查linux有没有安装python-pip包,直接执行:: yum install python-pip 二.安装 pip install 1.没有python-pip包就执行 ...
- Spark-1.X编译构建及配置安装
前提条件(环境要求) jdk版本:1.7+ scala版本:1.10.4+ maven版本:3.3.3+ 本博客中使用的软件版本 spark版本:spark-1.6.1.tar.gz(源码) jdk版 ...
- Java8新特性第1章(Lambda表达式)
在介绍Lambda表达式之前,我们先来看只有单个方法的Interface(通常我们称之为回调接口): public interface OnClickListener { void onClick(V ...