博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hdu 4864(Task 贪心)(Java实现)
阅读量:7111 次
发布时间:2019-06-28

本文共 1190 字,大约阅读时间需要 3 分钟。

Hdu 4864(Task 贪心)

题意:给定n台机器和m个任务,任务和机器都有工作时间值和工作等级值,一个机器只能执行一个任务,且执行任务的条件位机器的两个值都大于等于任务的值,每完成一个任务可获奖励500x+2y。求完成最多任务前提下可获得最高奖励,输出任务数和奖励数。

解法:对机器和任务进行排序,x和y都从大到小排。循环考察每一个任务,把满足每一个任务x值的机器等级都记录下来,然后用满足任务等级的最小等级机器完成此任务。这样的做法可以保证:

  • 前面的任务执行比后面的任务可获的奖励更高(排序)
  • 满足前面任务x值的机器一定满足后面的任务
  • 完成任务数是最多的(每次使用最小化等级)
import java.io.*;import java.util.*;public class Main{    private static final int N=100005;    private static class node{        int x,y;    };    private static class cmp implements Comparator
{ @Override public int compare(node a,node b){ if(a.x == b.x){ if(a.y==b.y) return 0; return a.y
=s2[i].x){ book[s1[j].y]++; j++; } for(int k=s2[i].y;k<=100;k++){ if(book[k]>0){ book[k]--; sum+=(s2[i].x*500+s2[i].y*2); cnt++; break; } } } System.out.println(cnt+" "+sum); } sc.close(); }}

转载于:https://www.cnblogs.com/zsyacm666666/p/6656859.html

你可能感兴趣的文章
交叉验证 Cross-validation
查看>>
压力测试就是一种破坏性的性能测试
查看>>
开发环境、生产环境、测试环境的基本理解和区别(转)
查看>>
angularjs学习曲线
查看>>
关于Cocos2d-x中对其他某个类的某个属性的获得
查看>>
多进程多线程优先级理解--优先级反转【转】
查看>>
BZOJ 3343: 教主的魔法 分块
查看>>
秋招笔试碰到的疑难题目1
查看>>
Zookeeper WINDOWS 安装配置
查看>>
Android应用截图嵌入到真实设备
查看>>
easyui menu 添加hideItem/showItem 方法
查看>>
查看WEB ADI所对应的包过程函数
查看>>
附12 grafana配置文件
查看>>
第六十九节,css入门基础
查看>>
C++析构函数定义为虚函数(转载)
查看>>
打印数字回环
查看>>
berkeley db储存URL队列的简单实现增、删、查
查看>>
使用 jstack 查询线程死锁错误日志 定位问题
查看>>
python3根据地址批量获取百度地图经纬度
查看>>
TCP/IP协议族之运输层(TCP流量控制和拥塞控制 [2])
查看>>