Codeforces 853A Planning
来源:互联网 发布:mac删除桌面文件 编辑:程序博客网 时间:2024/06/18 17:57
日常一水。
题目来源:CF-853A
题意及简单分析:有n架飞机,原本打算从第1分钟到第n分钟陆续起飞,但是由于某种原因,前K分钟不允许起飞,每架飞机每延迟一分钟(和原起飞时间相比)花费一个cost_i值,而且每架飞机的起飞时间不能比原起飞时间提前,请调整各架飞机起飞的时间,使总cost最小。
简单贪心。所有飞机延迟一分钟的总共的花费是一定的,所以你只需要选择当前能起飞的飞机中cost最大的起飞就可以,为了维护这样一个性质可以采用优先队列。
本题的一个坑点就是答案范围超过int。
#define _CRT_SECURE_NO_WARNINGS#include <cstdio>#include <iostream>#include <algorithm>#include <string.h>#include <string>#include <cstring>#include <queue>using namespace std;struct node{long long day;long long cost;};const int MAXN = 3e5 + 5;bool operator <(const node&a, const node& b){return a.cost < b.cost;}int pri[MAXN];node p[MAXN];int main(){int n, k;long long ans = 0;scanf("%d%d", &n, &k);for (int i = 1;i <= n;++i){int val;scanf("%d", &val);p[i].day = i;p[i].cost = val;}priority_queue <node> q;node cur;for (long long i = 1;i <= n;++i){q.push(p[i]);if (i >= k + 1){cur = q.top();ans += (cur.cost*(i - cur.day));pri[cur.day] = i;q.pop();}}long long s = n+1;while (q.empty() == false){cur = q.top();ans += (cur.cost*(s - cur.day));pri[cur.day] = s;s++;q.pop();}printf("%I64d\n", ans);for (int i = 1;i <= n;++i){printf("%d%c", pri[i], i == n ? '\n' : ' ');}return 0;}
阅读全文
0 0
- Codeforces 853A Planning
- Codeforces 853A Planning 【贪心】
- (codeforces 853A)Planning 贪心
- 【贪心+并查集】Codeforces 853A Planning
- Planning CodeForces
- Planning CodeForces
- Codeforces 853A Round#433 Div2C & Div1A Planning:优先队列或堆或排序
- Codeforces Round#433 C Planning
- Codeforces 854C. Planning 贪心
- Codeforces Round #433(Div. 1,based on Olympiad of Metropolises)A Planning B Jury Meeting C Boredom
- Codeforces Round #433 C. Planning(贪心)
- Codeforces Round #433 (2)C:Planning
- Codeforces Round #433 (Div. 2) C. Planning
- Codeforces Round #433 (Div. 2) C. Planning
- [codeforces] 854C. Planning(优先队列)
- Planning
- Planning
- Planning
- 数据库视频—数据库、表的管理
- HashTable和HashMap的区别详解
- 线段树与动态规划(例题:poj2374,HDU3016)
- 顺序表基本操作(c实现)
- 通过淘宝的ip地址库获取ip地址通用类的实现(C#版)
- Codeforces 853A Planning
- Python中9种生成新对象的方法
- 枚举类
- 正则表达式.*?探究
- xListView主页面请求网络数据展示到listView的三个步骤
- java线程安全总结
- Python函数式编程(高阶函数 <map/reduce filter sorted> 返回函数 匿名函数 装饰器 偏函数)
- Git入门实验
- flume“Space for commit to queue couldn't be acquired”异常产生分析