Planning CodeForces - 854C

题意:有n架航班,第i架原先的时候是在第i分钟起飞的。现在前k分钟无法有飞机起飞,因此需要调整安排表,延后飞机起飞。仍然要求每一分钟只有一架飞机起飞。第i架飞机延误一分钟需要损失ci的钱。不能使飞机起飞的时间早于原先安排中起飞的时间。求如何安排新安排表使损失钱数最少。

方法:

显然,如果在第i分钟有一些飞机延误,那么一架飞机的c值越大,这一分钟产生的损失也越大,而使这一分钟产生的损失尽可能的小并不会导致接下来时间产生的损失增大。因此应当每一分钟都找出要飞的飞机中c值最大的飞走。而举个例子,第k+1分钟有1~k+1架飞机可以飞,第二分钟可以飞的飞机多了一个第k+2架,少了一个第一分钟飞走的。

说白了就是第i分钟,应该从1~i架航班中未飞出的航班中选出ci最大的飞走.

由于需要将数据放入某结构、找出结构中最大值、去掉结构中最大值,可以考虑使用优先队列。

 #include<cstdio>
#include<queue>
using namespace std;
typedef long long LL;
struct Flight
{
LL c,num;
bool operator<(const Flight& b) const
{
return c<b.c;
}
}c[],t;
LL n,k,ans;
LL ans2[];
priority_queue<Flight> q;
int main()
{
LL i;
scanf("%I64d%I64d",&n,&k);
for(i=;i<=n;i++)
{
scanf("%I64d",&c[i].c);
c[i].num=i;
}
for(i=;i<=k;i++)
q.push(c[i]);
for(i=k+;i<=k+n;i++)
{
if(i<=n) q.push(c[i]);
t=q.top();
q.pop();
ans+=t.c*(i-t.num);
ans2[t.num]=i;
}
printf("%I64d\n",ans);
for(i=;i<=n;i++)
printf("%I64d ",ans2[i]);
return ;
}

Planning CodeForces - 854C的更多相关文章

  1. codeforces 854C.Planning 【贪心/优先队列】

    Planning time limit per test 1 second memory limit per test 512 megabytes input standard input outpu ...

  2. Codeforces 854C Planning 【贪心】

    <题目链接> 题目大意: 表示有n架飞机本需要在[1,n]时间内起飞,一分钟只能飞一架.但是现在[1,k]时间内并不能起飞,只能在[k+1,k+n]内起飞.ci序号为i的飞机起飞延误一分钟 ...

  3. Codeforces 854C Planning(贪心+堆)

    贪心:让代价大的尽量移到靠前的位置. 做法:先让前k个数加进堆里,枚举k+1~n+k,每次把新元素加进堆后找到最大代价放在当前位置即可. #include<bits/stdc++.h> # ...

  4. 暑期训练 CF套题

    CodeForces 327A 题意:有n个数,都是0或1,然后必须执行一次操作,翻转一个区间,里面的数0变1,1变0,求最多1的数量 思路:最开始我写的最大字段和,后面好像写搓了,然后我又改成暴力, ...

  5. CodeForces - 853A Planning (优先队列,贪心)

    Helen works in Metropolis airport. She is responsible for creating a departure schedule. There are n ...

  6. Codeforces div2 #499 B. Planning The Expedition 大水题

    已经是水到一定程度了QAQ- Code: #include<cstdio> #include<algorithm> #include<cstring> using ...

  7. 【Codeforces Round #433 (Div. 2) C】Planning

    [链接]h在这里写链接 [题意] 让你确定ti,使得∑(ti-i)*gi最小,其中ti∈[k+1..k+n],且每个ti都不能一样. 且ti>=i必须成立. [题解] 分解一下成为∑ti*gi ...

  8. Codeforces 853A Planning

    题意 给出飞机单位晚点时间代价和原定起飞时间,现在前k分钟不能起飞,求付出的最小代价和起飞顺序 思路 构造两个优先队列q1,q2,q1按时间顺序,q2按代价顺序,初始将所有飞机入q1,将时间在k前的飞 ...

  9. codeforces round 433 C. Planning 贪心

    题目大意: 输入n,k,代表n列航班,初始始发实践为1,2,3分钟以此类推,然后输入n个整数分别代表延迟1分钟第i个航班损失多少钱,然后调整后的始发时间表是这样的,任何一辆航班的始发时间不能在他的初始 ...

随机推荐

  1. 从.Net版本演变看String和StringBuilder性能之争

    在C#中string关键字的映射实际上指向.NET基类System.String.System.String是一个功能非常强大且用途非常广泛的基类,所以我们在用C#string的时候实际就是在用.NE ...

  2. firefox浏览器和IE

    http://blog.csdn.net/pipisorry/article/details/40899701 firefox浏览器插件 [下载地址add-ons for firefox]皮皮blog ...

  3. 事件序列化器 Flume 的无数据丢失保证,Channel 和事务

    小结: 1.Flume 的持久性保证依赖于使用的持久性Channel 的保证 通过事件序列化器将Flume事件转化为外部存储格式 主要的事件序列化器: 1.文本 2.带有头信息的文本 3.Avro序列 ...

  4. SQL JOIN连接分类[转]

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符):包括相等联接和自然联接: 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行:    2.外联接.外联接可以 ...

  5. CentOS7.2编译GCC7.3

    1.环境 本文使用VMWare虚拟机进行实验. 4 核CPU, 4GB 内存,20GB 硬盘,CentOS 7.2 最小安装(CentOS-7-x86_64-Minimal-1511.iso) 2.需 ...

  6. devm_regmap_init_i2c【转】

    本文转载自:http://blog.csdn.net/u011975319/article/details/52128845 本文有此处转载http://blog.csdn.net/luckywang ...

  7. 【Nginx安装】CentOS7安装Nginx及配置

    [Nginx安装]CentOS7安装Nginx及配置 2018年03月05日 11:07:21 阅读数:7073 Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttp ...

  8. Maze 解题报告

    Maze Description   You are given a special Maze described as an n*m matrix, please find the shortest ...

  9. [置顶] SQL Server 2005 双机热备的实现

    [置顶] SQL Server 2005 双机热备的实现 分类: SQLSERVER2011-08-24 21:25 901人阅读 评论(0) 收藏 举报 sql servermicrosoftsql ...

  10. 【转】创建和使用ANDROID LIBRARY工程

    原文网址:http://www.cnblogs.com/Greenwood/archive/2011/06/19/2084499.html 摘要: 创建library供多个工程共享代码.资源是非常常见 ...