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 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...
随机推荐
- css3动画transition详解2
transition主要包含四个属性值:执行变换的属性:transition-property,变换延续的时间:transition-duration,在延续时间段,变换的速率变化transition ...
- python之路--day13-模块
1,什么是模块 模块就是系统功能的集合体,在python中,一个py文件就是一个模块, 例如:module.py 其中module叫做模块名 2,使用模块 2.1 import导入模块 首次带入模块发 ...
- svn的使用技巧
就是如果想一个文件在提交的时候不被上传,可以设置忽略这样提交的时候就不会被上传
- WIN7 局域网共享打印机每次电脑重启后必须登录密码重新连接问题修复
第一步,WIN+R(或者开始->附件->运行)输入gpedit或gpedit.msc 进入 第二步:把这几个拒绝的Guest给删除掉,也可以只删除""拒绝从王洛访问这台 ...
- Java看书学习笔记
1.POM:maven ,项目管理工具存放Jar包的文件2.mybatis-generator-core-1.3.2 生成文件 生成语句: java -jar mybatis-generator-co ...
- Delphi Web开发连载 --ThinkDelphi (序)
如果把Delphi比作男人,那他曾经独步天下,笑傲江湖过: 如果把Delphi比作女子,那她曾经貌美如花,倾国倾城过! 但那只是历史,那只是曾经, 弹指一挥间,Delphi却似乎英雄迟暮,美人已老.. ...
- Spark快速入门
Spark 快速入门 本教程快速介绍了Spark的使用. 首先我们介绍了通过Spark 交互式shell调用API( Python或者scala代码),然后演示如何使用Java, Scala或者P ...
- C# 文件的一些基本操作
近期程序中经常用到一些文件的操作,现在大致整理一下. 一. 获取文件或文件夹基本信息 1.获取文件信息,组成一个DataTable信息. /// <summary> /// 获取指定目录下 ...
- iOS 封装.framework 以及使用
.framework是什么? .framework是什么? 这个问题相信做iOS的都知道答案. 在我们的日常开发中,经常会用到各种已经封装好的库,比如支付宝.微信SDK等等中的库,这些库可以给我们的开 ...
- linux下安装 配置 redis数据库
通过终端命令安装(推荐): 1 确保更新源服务器能正常使用 如果没有更换更新源服务器,那么可能一直都下不了软件.欢迎参考我之前的博文来更换成国内的镜像服务器http://www.cnblogs.com ...