Day3-G - Task HDU4864
The company has n machines. Each machine has a maximum working time and a level. If the time for the task is more than the maximum working time of the machine, the machine can not complete this task. Each machine can only complete a task one day. Each task can only be completed by one machine.
The company hopes to maximize the number of the tasks which they can complete today. If there are multiple solutions, they hopes to make the money maximum.
InputThe input contains several test cases.
The first line contains two integers N and M. N is the number of the machines.M is the number of tasks(1 < =N <= 100000,1<=M<=100000).
The following N lines each contains two integers xi(0<xi<1440),yi(0=<yi<=100).xi is the maximum time the machine can work.yi is the level of the machine.
The following M lines each contains two integers xi(0<xi<1440),yi(0=<yi<=100).xi is the time we need to complete the task.yi is the level of the task.OutputFor each test case, output two integers, the maximum number of the tasks which the company can complete today and the money they will get.Sample Input
1 2
100 3
100 2
100 1
Sample Output
1 50004 思路:本题和H(Alice and Bob)一样,可看作偏序,x的权重大于y,将machine的x大于等于task的y值入队,每次入队最小的大于task的y值的,这样就能保证后面的y可以更多的匹配,
而x在入队时已经得到保证,代码如下:
typedef long long LL; const int maxm = ; struct Node {
int x, y; bool operator<(const Node &a)const {
return x > a.x || (x == a.x && y > a.y);
}
} machine[maxm], task[maxm]; int n, t, tmp[]; int main() {
while(scanf("%d%d", &n, &t) == ) {
memset(tmp, , sizeof(tmp));
for (int i = ; i < n; ++i)
scanf("%d%d", &machine[i].x, &machine[i].y);
for(int i = ; i < t; ++i)
scanf("%d%d", &task[i].x, &task[i].y);
sort(machine, machine + n), sort(task, task + t);
int complete = ;
LL sum = ;
for(int i = , j = ; i < t; ++i) {
while(j < n && machine[j].x >= task[i].x) {
tmp[machine[j].y]++;
j++;
}
for (int k = task[i].y; k <= ; ++k) {
if(tmp[k]) {
++complete;
sum += task[i].x * * 1LL + * 1LL * task[i].y;
tmp[k]--;
break;
}
}
}
printf("%d %I64d\n", complete, sum);
}
return ;
}
补:
多者以上的贪心都要跟偏序挂钩
Day3-G - Task HDU4864的更多相关文章
- 牛客国庆集训派对Day3 G Stones
Stones 思路: sg函数打表找规律 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #in ...
- Multi-tasking RTOS for microprocessors with limited memory by saving only a single return address per task during context switching
A real-time operating system (RTOS) for use with minimal-memory controllers has a kernel for managin ...
- Java性能提示(全)
http://www.onjava.com/pub/a/onjava/2001/05/30/optimization.htmlComparing the performance of LinkedLi ...
- WSL(Windows Subsystem for Linux)--Pico Process Overview
[转载] Windows Subsystem for Linux -- Pico Process Overview Overview This post discusses pico processe ...
- MTK6261 11C之Init Analysis【手记】
初始化流程 Application_Initialize systemInitialization(); HWDInitialization(); USC_Start(); OSTD_Init(); ...
- windows下使用vscode编写运行以及调试C/C++
未经允许,禁止转载,唯一出处:tangming博客园 最后更新于2019年4月4日: 多次更新,内容较多,篇幅较大,但如果是喜欢visual stdio code这款编辑器的话建议仔细阅读,有疑问的地 ...
- FuelPHP 系列(一) ------ Oil 命令
之前用过 Laravel,框架自带的 artisan 命令,用得爽到爆.现在工作需要,要学习 FuelPHP,首先看到框架目录结构,有 coposer.json 框架可以用 composer 管理,一 ...
- Should I expose synchronous wrappers for asynchronous methods?
In a previous post Should I expose asynchronous wrappers for synchronous methods?, I discussed " ...
- Should I expose asynchronous wrappers for synchronous methods?
Lately I've received several questions along the lines of the following, which I typically summarize ...
随机推荐
- Linux :ls 命令
常用命令: ls:列出当前路径下的文件和目录 ls -a:列出当前路径下的所有文件和目录(包括隐藏文件和目录) ls -l:以列表方式显示文件或目录的详细信息 ls -al:可以结合使用 ls xxx ...
- PyQt5打印机
1.打印机操作(打印默认文本里面的内容)from PyQt5 import QtGui,QtWidgets,QtPrintSupportfrom PyQt5.QtWidgets import *imp ...
- ubuntu-查看所有用户
cat /etc/shadow :后面的全是用户
- 【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)
题意: 输入两个正整数N和K(N<=40000,K<=2500),分别为学生和课程的数量.接下来输入K门课的信息,先输入每门课的ID再输入有多少学生选了这门课,接下来输入学生们的ID.最后 ...
- linux文件的查找和检索
1)按文件属性查找 1)文件名: find + 查找的目录 + -name + "文件名" 文件名中可以使用通配符:*号表示多个,?号表示一个 2)文件大小: fin ...
- ubuntu13.10更新sources.list
步骤: 1>设置网络连接方式,NAT 2>自动获取ip address 10.0.2.15 3>更新源soureces.list soureces.list deb http://m ...
- Java基础知识笔记第七章:内部类和异常类
内部类 /* *Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类 */ 重要关系: /* *1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方 ...
- 四 Spring的工厂类,xml的配置
Spring工厂类的结构图: BeanFactory:老版本的工厂类 BeanFactory:调用getBean的时候,才会生产类的实例 ApplicationFactory:新版本的工厂类 加载配置 ...
- CentOS7编译安装httpd-2.4.41
安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yum -y install pcre-devel # yum - ...
- Windows的本地时间(LocalTime)、系统时间(SystemTime)、格林威治时间(UTC-Time)、文件时间(FileTime)之间的转换
今天处理了一个Bug,创建历史数据时脚本函数的起始时间不赋值或者赋0值时,计算引擎推给历史库的UTC时间为-288000000000,一开始以为是bug,经过分析后发现不赋值默认给起始时间赋0值,而此 ...