贪心-- Task

来源:互联网 发布:怎么让淘宝号快速升3心 编辑:程序博客网 时间:2024/06/08 03:46
Today the company has m tasks to complete. The ith task need ximinutes to complete. Meanwhile, this task has a difficulty levelyi. The machine whose level below this task’s level yi cannotcomplete this task. If the company completes this task, they willget (500*xi+2*yi) dollars.
The company has n machines. Each machine has a maximum working timeand a level. If the time for the task is more than the maximumworking time of the machine, the machine can not complete thistask. Each machine can only complete a task one day. Each task canonly be completed by one machine.
The company hopes to maximize the number of the tasks which theycan complete today. If there are multiple solutions, they hopes tomake the money maximum.
Input
The input contains several test cases.
The first line contains two integers N and M. N is the number ofthe machines.M is the number of tasks(1 < =N <=100000,1<=M<=100000).
The following N lines each contains two integers xi(0
The following M lines each contains two integers xi(0
Output
For each test case, output two integers, the maximum numberof the tasks which the company can complete today and the moneythey will get.
Sample Input
1 2100 3100 2100 1
Sample Output
           1 50004


有n台机器,m个任务,每台机器有xi,yi,每个任务也有xj,yj,当一个任务可以被处理的条件是,xj<=xi 且yj

解题思路:

注意y的范围是 y<100,也就是x相差1,y不管相差多少价值都很少。

根据贪心的做法,肯定从高价值物品生产也就是按x排好序,再贪心,高价值的物品只需要在x比它大的所有机器中选择y满足条件的最小的那个(这个思考一下)

注:总是超时,无聊时可以回来再做做

http://paste.ubuntu.com/23975147/

借鉴(但也超时)
http://blog.csdn.net/libin56842/article/details/38066205
0 0