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的更多相关文章
- codeforces 854C.Planning 【贪心/优先队列】
Planning time limit per test 1 second memory limit per test 512 megabytes input standard input outpu ...
- Codeforces 854C Planning 【贪心】
<题目链接> 题目大意: 表示有n架飞机本需要在[1,n]时间内起飞,一分钟只能飞一架.但是现在[1,k]时间内并不能起飞,只能在[k+1,k+n]内起飞.ci序号为i的飞机起飞延误一分钟 ...
- Codeforces 854C Planning(贪心+堆)
贪心:让代价大的尽量移到靠前的位置. 做法:先让前k个数加进堆里,枚举k+1~n+k,每次把新元素加进堆后找到最大代价放在当前位置即可. #include<bits/stdc++.h> # ...
- 暑期训练 CF套题
CodeForces 327A 题意:有n个数,都是0或1,然后必须执行一次操作,翻转一个区间,里面的数0变1,1变0,求最多1的数量 思路:最开始我写的最大字段和,后面好像写搓了,然后我又改成暴力, ...
- CodeForces - 853A Planning (优先队列,贪心)
Helen works in Metropolis airport. She is responsible for creating a departure schedule. There are n ...
- Codeforces div2 #499 B. Planning The Expedition 大水题
已经是水到一定程度了QAQ- Code: #include<cstdio> #include<algorithm> #include<cstring> using ...
- 【Codeforces Round #433 (Div. 2) C】Planning
[链接]h在这里写链接 [题意] 让你确定ti,使得∑(ti-i)*gi最小,其中ti∈[k+1..k+n],且每个ti都不能一样. 且ti>=i必须成立. [题解] 分解一下成为∑ti*gi ...
- Codeforces 853A Planning
题意 给出飞机单位晚点时间代价和原定起飞时间,现在前k分钟不能起飞,求付出的最小代价和起飞顺序 思路 构造两个优先队列q1,q2,q1按时间顺序,q2按代价顺序,初始将所有飞机入q1,将时间在k前的飞 ...
- codeforces round 433 C. Planning 贪心
题目大意: 输入n,k,代表n列航班,初始始发实践为1,2,3分钟以此类推,然后输入n个整数分别代表延迟1分钟第i个航班损失多少钱,然后调整后的始发时间表是这样的,任何一辆航班的始发时间不能在他的初始 ...
随机推荐
- C++ 模板应用浅析
把曾经写的C++模板的应用心得发表出来. 回忆起当时在学习C++模板时的无助和恐惧,如今还心有余悸.我分享出来我的心得,仅仅希望别人少走弯路,事实上它就这么几种使用方法,不须要害怕. 我总结了模板的四 ...
- 项目Alpha冲刺(团队8/10)
项目Alpha冲刺(团队8/10) 团队名称: 云打印 作业要求: 项目Alpha冲刺(团队) 作业目标: 完成项目Alpha版本 团队队员 队员学号 队员姓名 个人博客地址 备注 221600412 ...
- HDU 5188 背包
有N道题.要求得到最少W分 给出N道题的:每道题用时T.分数V,应在且必须在L时刻提交才干得分 问得到W分所用的最少的时间 以L-T排序,然后做01背包就可以 #include "stdio ...
- Python2.7安装教程
作者:zhanhailiang 日期:2014-11-16 [root@~/software]# yum install bzip* [root@~/software]# wget http://ww ...
- mvn_action
validate(验证): 验证项目正确,并且所有必要信息可用. compile(编译): 编译项目源码 test(测试): 使用合适的单元测试框架测试编译后的源码. package(打包): 源码编 ...
- ubuntu主板信息
root:~# sudo dmidecode |grep -A16 "System Information$"sudo: 无法解析主机:phone-TPOWER-X79System ...
- POJ2253 Frogger —— 最短路变形
题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- EOS智能合约为何选择Web Assembly(wasm)
比特币的程序非常简单,由解锁脚本和锁定脚本构成.以太坊有智能合约,有图灵完备的虚拟机EVM,但是指令也相对简单,且自成一套.这两种程序本质上都是脚本程序,即由程序翻译指令并执行,而不是由本地机器CPU ...
- uestc 250 windy数(数位dp)
题意:不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 思路:数位dp #include<iostream ...
- hdu(1007) 最近点对 分治法
最近点对一般想到枚举 ,一一枚举时间复杂度为n^2:枚举时候一些操作是多余的,有了分治算法的思想 ,把一些问题分个击破,再回到整体. 题目链接 以这道题为例,我们可以把他按照x轴的升序分成多个子区域 ...