HDU 4864 Task(2014多校--贪心)
Task
比赛当时思路想的差不多,感觉能过的,该处理的也都处理到了,最后还是没过,可能是二分写错了吧-。-
大意:给你n个机器,m个要完成的任务,每个机器跟任务都有两个属性,机器是最大工作时间跟等级,任务是需要工作的时间跟等级。完成一个任务可以得到500*(工作时间)+2*(等级)的报酬。完成任务的条件是机器的工作时间满足任务的需要,等级要大于等于任务的等级,一个机器只能用一次,一个任务也只能用一个机器去完成。需要进行策略选择,使得完成更多的任务。
思路:开始想的就是贪心,也想到了贪心的时候时间是主导因素,要优先考虑,赛后写的时候是看的标程用的map来实现的。
1 struct node 2 { 3 int time, lev; 4 } a[100010], b[100010]; 5 6 int cmp(node a, node b) 7 { 8 if(a.time == b.time) 9 return a.lev > b.lev; 10 return a.time > b.time; 11 } 12 13 map<int, int> M; 14 int n, m; 15 16 int main() 17 { 18 while(~scanf("%d%d", &n, &m)) 19 { 20 for(int i = 0; i < n; ++i) 21 { 22 scanf("%d%d", &a[i].time, &a[i].lev); 23 } 24 for(int i = 0; i < m; ++i) 25 { 26 scanf("%d%d", &b[i].time, &b[i].lev); 27 } 28 sort(a, a+n, cmp); 29 sort(b, b+m, cmp); 30 M.clear(); 31 int j = 0; 32 int ans1 = 0; 33 long long ans2 = 0; 34 for(int i = 0; i < m; ++i) 35 { 36 while(j < n && a[j].time >= b[i].time) 37 { 38 M[a[j].lev]++; 39 ++j; 40 } 41 map<int, int>::iterator it = M.lower_bound(b[i].lev); 42 if(it != M.end()) 43 { 44 ans1++; 45 ans2 += 500*b[i].time+2*b[i].lev; 46 int t = it->first; 47 M[t]--; 48 if(M[t] == 0) 49 { 50 M.erase(t); 51 } 52 } 53 } 54 printf("%d %I64d\n", ans1, ans2); 55 } 56 57 return 0; 58 }
HDU 4864
转载于:https://www.cnblogs.com/Silence-AC/p/3863944.html
HDU 4864 Task(2014多校--贪心)相关推荐
- hdu 4864 Task(贪婪啊)
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 Task Time Limit: 4000/2000 MS (Java/Others) M ...
- HDU 4864 Task(贪心或高斯消元)
题意:n台机器工作时间为ai,等级bi,m个任务需要时间ai,等级bi,一台机器只能完成一个任务,完成一个任务收益为500*ai+2*bi,求最大收益:(n,m>100000) 思路:先从大到小 ...
- 2014多校联合四(HDU 4901 HDU 4902 HDU 4905)
HDU 4901 The Romantic Hero 题意: 一串数字a 找一个位置分开 前面为S'后面为T' 从这两个集合中分别选出子集S和T 使得S中元素的"异或"值等 ...
- 2019 杭电多校 HDU - 6625 three arrays 字典树+贪心
题目链接:https://cn.vjudge.net/problem/HDU-6625 题意:a和b两个数组n个数,数字任意组合异或,求得到c数组的字典序最小 题解:对于两个数组从高位到低位建立两个字 ...
- 2014多校第四场1006 || HDU 4902 Nice boat (线段树 区间更新)
题目链接 题意 : 给你n个初值,然后进行两种操作,第一种操作是将(L,R)这一区间上所有的数变成x,第二种操作是将(L,R)这一区间上所有大于x的数a[i]变成gcd(x,a[i]).输出最后n个数 ...
- hdu 4937 Lucky Number(数学题 进制转换)2014多校训练第7场
Lucky Number Time Limit: 20 ...
- 2014多校第一场A题 || HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
- HDU 4868 Information Extraction(2014 多校联合第一场 H)
看到这道题时我的内心是奔溃的,没有了解过HTML,只能靠窝的渣渣英语一点一点翻译啊TT. Information Extraction 题意:(纯手工翻译,有些用词可能在html中不是一样的,还多包涵 ...
- HDU 5037 Frog(2014年北京网络赛 F 贪心)
开始就觉得有思路,结果越敲越麻烦... 题意很简单,就是说一个青蛙从0点跳到m点,最多可以跳l的长度,原有石头n个(都仅表示一个点).但是可能跳不过去,所以你是上帝,可以随便在哪儿添加石头,你的策略 ...
最新文章
- Ecsotre 参考
- linux文件怎么操作,linux文件操作学习1
- Tensorflow加载模型(进阶版):如何利用预训练模型进行微调(fintuning)
- Java通过Netty,实现Websocket消息推送简单几步搞定
- javascript判断图片是否加载完成方法整理
- pb blob存储到image_【Filecoin相关】速懂 Filecoin 自认证存储设计
- springmvc接收参数
- 七:Java之封装、抽象、多态和继承
- android 实现类似微信缓存和即时更新好友头像
- 管理感悟:深入理解软件
- trunc函数_这几个舍入函数你都会用吗?
- java面试官如何面试别人
- 2021-05-30
- Excel技巧[EXCEL 下拉填充公式,保持公式部分内容不变,使用绝对引用]
- Java实现简易版金山打字
- TPAMI2021语义分割/领域自适应-Domain Adaptation Network with Image Alignment for Unsupervised Semantic Segment
- 如何用公式编辑器打半中括号?
- OSChina 周一乱弹 —— 今天下班带你去放松咧
- onenote 思维导图_印象笔记、OneNote、熊掌记 哪个笔记App更适合文字工作者?
- Lammps安装教程 windows版
热门文章
- 虚拟机及VmBasic编译引擎实现
- 软件架构设计之常用架构模式
- golang中的panic和recover
- muduo之TimerQueue
- mysql服务启动出错:mysql: unrecognized service
- 口语学习Day6:今天聊聊国内安全还是国外安全?
- mbstowcs 和 wcstombs函数:C语言提供的宽字符和多字节字符转换函数
- 设计模式:模板方法(Template Method Pattern)
- 前端一HTML:六:标签的关系,分类
- python五十二:__setattr__,__delattr__,__getattr__方法