[HDOJ 4864] Task [贪心]
来源:互联网 发布:java和c哪个难 编辑:程序博客网 时间:2024/05/24 04:17
现有n个机器和m个任务,每个机器有最大运行时间和等级,每个任务有需要运行时间和等级。一个机器只能运行一个任务,一个任务也仅能被一个机器运行,不能拆开由多个机器运行。每个机器只能运行等级和需要时间都小于等于它的任务。问最多可以运行多少个任务?在此前提下,最多可以得到多少分?
由于分数的公式是500*运行时间+2*等级,而且等级最大为100,所以相当于运行时间为第一关键字,等级为第二关键字
贪心,将机器和任务都排序,对于每个机器,按照等级从底到高的顺序,执行它可以执行的分数最高的任务即可。
#include <cstdio>#include <cstring>#include <set>#include <algorithm>using namespace std;struct PP {int x,y;friend bool operator < (const PP &a,const PP &b) {return a.y<b.y;}};PP task[100101];PP mach[100101];struct SETPP {int i;SETPP() {}SETPP(int ii) {i=ii;}friend bool operator < (const SETPP &a,const SETPP &b) {//printf("%d %d %d %d %d %d\n",a.i,task[a.i].x,task[a.i].y,b.i,task[b.i].x,task[b.i].y);if (task[a.i].x!=task[b.i].x) return task[a.i].x>task[b.i].x;return task[a.i].y>task[b.i].y;}};multiset <SETPP> c;int n,m;int main() {int i,j,ansn;long long ans;while (scanf("%d%d",&n,&m)!=EOF) {for (i=0;i<n;i++) {scanf("%d%d",&mach[i].x,&mach[i].y);}for (i=0;i<m;i++) {scanf("%d%d",&task[i].x,&task[i].y);}sort(mach,mach+n);sort(task,task+m);j=0;ans=0;ansn=0;c.clear();for (i=0;i<n;i++) {while (j<m&&task[j].y<=mach[i].y) {c.insert(SETPP(j));j++;}multiset <SETPP> :: iterator k;//for (multiset <SETPP> :: iterator it=c.begin();it!=c.end();it++) {//printf("%d\n",it->i);//}task[m]=mach[i];k=c.lower_bound(SETPP(m));if (k!=c.end()) {ans+=500ll*task[k->i].x+2*task[k->i].y;c.erase(k);ansn++;}}printf("%d %I64d\n",ansn,ans);}return 0;}
0 0
- hdoj 4864 Task 【贪心】
- [HDOJ 4864] Task [贪心]
- HDOJ 4864 Task 贪心
- hdoj 4864 Task 【贪心】
- HDOJ 4864 Task(贪心)
- HDOJ 4849 Task (贪心)
- HDOJ 4864 Task
- hdu 4864 Task 贪心
- hdu 4864 Task 贪心
- HDU 4864 Task(贪心)
- HDU 4864 Task(贪心)
- 【HDU 4864】Task【贪心】
- HDU 4864 Task 贪心
- HDU 4864 Task 贪心
- hdu 4864 Task(贪心)
- HDU 4864 Task (贪心)
- HDU 4864 Task(贪心)
- hdu 4864 Task 贪心
- QT5.3版本+VS2012平台搭建(WIN7系统)及实例图片展示
- oracle内置函数详解
- 提示要加快你的职业生涯在Analytics(分析)
- VMware读盘失败
- 关于JSTL中使用EL的一个小细节
- [HDOJ 4864] Task [贪心]
- 提示对于视听演示和音频录制为多媒体演示
- keepalived + LVS 配置和部署
- 中水处理设备:印染行业中水回用设备工艺说明
- 流媒体常见资源
- C语言快速入门系列(九)
- 投票时间少,更多设计
- 把你的企业更上一个台阶通过外包在线内容生成
- [Android-码农]Android Sdk Manager无法更新