HDU 4864 Task(贪心)
HDU 4864 Task
题意:有一些机器和一些任务。都有时间和等级,机器能做任务的条件为时间等级都大于等于任务。而且一个任务仅仅能被一个机器做。如今求最大能完毕任务。而且保证金钱尽量多
思路:贪心,对于每一个任务。时间大的优先去匹配,时间同样的。等级大的优先去匹配,由于时间占得多,时间多1就多500,而等级最多才差200。然后匹配的时候,尽量使用等级小的去匹配,而时间仅仅要大于它的都能够用。由于是按时间优先。所以假设该时间能匹配大的,其它肯定也能匹配,那么肯定优先匹配大的,所以仅仅要在等级上尽量小就能够了
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std; typedef __int64 ll;
const int N = 1444;
const int M = 105;
int n, m;
ll mac[N][M], task[N][M], used[N]; int main() {
while (~scanf("%d%d", &n, &m)) {
int x, y;
memset(mac, 0, sizeof(mac));
memset(task, 0, sizeof(task));
memset(used, 0, sizeof(used));
for (int i = 0; i < n; i++) {
scanf("%d%d", &x, &y);
mac[x][y]++;
}
for (int i = 0; i < m; i++) {
scanf("%d%d", &x, &y);
task[x][y]++;
}
for (int i = 0; i <= 100; i++) {
for (int j = 1439; j > 0; j--) {
mac[j][i] += mac[j + 1][i];
}
}
ll num = 0;
ll ans = 0;
for (ll i = 1439; i > 0; i--) {
for (ll j = 100; j >= 0; j--) {
if (!task[i][j]) continue;
for (ll k = j; k <= 100; k++) {
if (task[i][j] > mac[i][k] - used[k]) {
num += mac[i][k] - used[k];
ans += (mac[i][k] - used[k]) * (i * 500 + j * 2);
task[i][j] -= (mac[i][k] - used[k]);
used[k] = mac[i][k];
}
else {
num += task[i][j];
ans += task[i][j] * (i * 500 + j * 2);
used[k] += task[i][j];
task[i][j] = 0;
break;
}
}
}
}
printf("%I64d %I64d\n", num, ans);
}
return 0;
}
HDU 4864 Task(贪心)的更多相关文章
- Hdu 4864(Task 贪心)(Java实现)
Hdu 4864(Task 贪心) 原题链接 题意:给定n台机器和m个任务,任务和机器都有工作时间值和工作等级值,一个机器只能执行一个任务,且执行任务的条件位机器的两个值都大于等于任务的值,每完成一个 ...
- HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可 ...
- 2014多校第一场D题 || HDU 4864 Task (贪心)
题目链接 题意 : 用N台机器,M个任务,每台机器都有一个最大工作时间和等级,每个任务有一个需要工作时间和一个等级.如果机器完成一个任务要求是:机器的工作时间要大于等于任务的时间,机器的等级要大于等于 ...
- hdu 4864 Task (贪心 技巧)
题目链接 一道很有技巧的贪心题目. 题意:有n个机器,m个任务.每个机器至多能完成一个任务.对于每个机器,有一个最大运行时间xi和等级yi, 对于每个任务,也有一个运行时间xj和等级yj.只有当xi& ...
- HDU 4864 Task(经典贪心)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=4864 Task Time Limit: 4000/2000 MS (Java/Others) M ...
- hdu 4864 Task
题目链接:hdu 4864 其实就是个贪心,只是当初我想的有偏差,贪心的思路不对,应该是这样子的: 因为 xi 的权值更重,所以优先按照 x 来排序,而这样的排序方式决定了在满足任务(即 xi > ...
- hdu 4864 Task(贪婪啊)
主题链接:pid=4864">http://acm.hdu.edu.cn/showproblem.php?pid=4864 Task Time Limit: 4000/2000 MS ...
- hdu 4864 Task(贪心)
pid=4864">http://acm.hdu.edu.cn/showproblem.php?pid=4864 大致题意:有n台机器和m个任务,都有两个參数工作时间time和难度le ...
- HDU 4864 Task (贪心)
Task 题目链接: http://acm.hust.edu.cn/vjudge/contest/121336#problem/B Description Today the company has ...
随机推荐
- HTML5 Canvas游戏开发(四)lufylegend开源库件(下)
一.文本 LTextField对象是lufylegend库件中专门用于显示文本信息的一个对象. 1.文本属性 创建的文本框对象不会自动加入可视化对象列表中.只有手动调用addChild()方法才能使它 ...
- 【Java】 用PriorityQueue实现最大最小堆
PriorityQueue(优先队列),一个基于优先级堆的无界优先级队列. 实际上是一个堆(不指定Comparator时默认为最小堆),通过传入自定义的Comparator函数可以实现大顶堆. Pri ...
- grep、find命令整理
一.grep格式: grep [选项]... PATTERN [FILE]...(默认的PATTERN是一个基本的正则表达式(BRE)) 参数选项 1.杂项: -s, --no-messages 不显 ...
- Ionic 自动创建应用的图标与启动画面
你只需要一个目录和两张图片就可以搞定.图片可以是 .png 的,Photoshop的 .psd,或者Illustrator的 .ai,(例如)命名为icon.png和splash.png.把这些图片放 ...
- MIT-6.828-JOS-环境搭建
MIT 6.828是操作系统中最经典的一门课程.完成所有的lab就相当于完成了一个迷你的操作系统.我跟的是2018年的课程,课程首页在6.828课程官网.当然所有资料都是英文的,所以难度也不低,这里推 ...
- Jvm内存区域和GC
运行时数据区域 线程私有 程序计数器 正在执行的字节码指令的地址(native方法时为undefined) Java虚拟机栈 存储栈帧(局部变量表,操作数栈,动态链接,方法出口)OOM,StackOv ...
- 日报 18/07/15 Java 性能优化
尽量指定类和方法的final修饰符 带有final修饰符的类是不可派生的 在java核心api中 有许多应用final的例子 例如 java.lang.string整个类都是final的 为类指定fi ...
- iOS 9应用开发教程之定制应用程序图标以及真机测试
iOS 9应用开发教程之定制应用程序图标以及真机测试 定制ios9应用程序图标 在图1.12中可以看到应用程序的图标是网状白色图像,它是iOS模拟器上的应用程序默认的图标.这个图标是可以进行改变的.以 ...
- [ 转载 ] Java基础13--equals方法
一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...
- [Agc001E] BBQ Hard
[Agc001E] BBQ Hard 题目大意 给定\(n\)对正整数\(a_i,b_i\),求\(\sum_{i=1}^{n-1} \sum_{j=i+1}^n \binom{a_i+b_i+a_j ...