Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’s level yi cannot complete this task. If the company completes this task, they will get (500*xi+2*yi) dollars. 
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的更多相关文章

  1. 牛客国庆集训派对Day3 G Stones

    Stones 思路: sg函数打表找规律 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #in ...

  2. 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 ...

  3. Java性能提示(全)

    http://www.onjava.com/pub/a/onjava/2001/05/30/optimization.htmlComparing the performance of LinkedLi ...

  4. WSL(Windows Subsystem for Linux)--Pico Process Overview

    [转载] Windows Subsystem for Linux -- Pico Process Overview Overview This post discusses pico processe ...

  5. MTK6261 11C之Init Analysis【手记】

    初始化流程 Application_Initialize systemInitialization(); HWDInitialization(); USC_Start(); OSTD_Init(); ...

  6. windows下使用vscode编写运行以及调试C/C++

    未经允许,禁止转载,唯一出处:tangming博客园 最后更新于2019年4月4日: 多次更新,内容较多,篇幅较大,但如果是喜欢visual stdio code这款编辑器的话建议仔细阅读,有疑问的地 ...

  7. FuelPHP 系列(一) ------ Oil 命令

    之前用过 Laravel,框架自带的 artisan 命令,用得爽到爆.现在工作需要,要学习 FuelPHP,首先看到框架目录结构,有 coposer.json 框架可以用 composer 管理,一 ...

  8. Should I expose synchronous wrappers for asynchronous methods?

    In a previous post Should I expose asynchronous wrappers for synchronous methods?, I discussed " ...

  9. Should I expose asynchronous wrappers for synchronous methods?

    Lately I've received several questions along the lines of the following, which I typically summarize ...

随机推荐

  1. idea搭建项目注意事项

    1,pom.xml文件中要加入 <!--  强制将xml文件打到war包中 s--><resources> <resource> <directory> ...

  2. Java 数据脱敏 工具类

    一.项目导入Apache的commons的Jar包. Jar包Maven下载地址:https://mvnrepository.com/artifact/org.apache.commons/commo ...

  3. Algorightm----DynamicProgramming

    参考资料: 1.  告别动态规划,连刷40道动规算法题,我总结了动规的套路

  4. 【Hibernate 多对多】

    HibernateManytoMany public class HibernateManytoMany { //演示维护第三张表 @Test public void testTable2() { S ...

  5. 读书笔记 - The Hitchhiker's Guide to Python

    网址 http://docs.python-guide.org/en/latest/ Reuqests库的作者写的经验 1. 项目需要一个好的结构 https://www.kennethreitz.o ...

  6. Linux下给mysql创建用户并分配权限

    // fe_group 用户名// fe 数据库名// 123456 密码 1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> ...

  7. Cosmetic Sprayer Structure Anatomy

    What shape of spray is sprayed by the cosmetic spray pump head?     Plastic Sprayers Manufacturer   ...

  8. PAT T1004 To Buy or Not to Buy - Hard Version

    暴力搜索加剪枝~ #include<bits/stdc++.h> using namespace std; ; string t; string s[maxn]; int pos[maxn ...

  9. PTA的Python练习题(七)

    不知不觉一个星期过去了,继续从 第3章-12 求整数的位数及各位数字之和 开始做题 1. 我原来想用题目漏洞做题的,不过想想还是算了自己写个完整的: a=int(input()) b=len(str( ...

  10. Solr搜索引擎服务器学习笔记

    Solr简介 采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功能 ...