时间限制 : 1.000 sec 内存限制 : 128 MB

题目描述

在某网络游戏中提供了一个道具库,在道具库中每种道具均有若干件(数量已知),游戏玩家购买一件道具将获得一定的魅力值。
已知每种道具的价格和魅力值,请编写一个程序,在总价格不超过某个上限的情况下使得所购道具的魅力值之和达到最大。

输入

每组测试数据的输入有n+1行,n表示道具的种类。(n<=100,p<=10000)
第1行包含两个正整数,分别表示道具种类数n和总价值的上限p,两个数字之间用空格隔开。
第2行到第n+1行分别对应于第1种道具到第n种道具的信息,每1行包含三个正整数,两个数字之间用空格隔开,三个正整数分别表示某一种道具的数量、单个道具的价格和魅力值。

输出

每组测试数据的输出只有一行,即道具魅力值的最大和。

样例输入

3 10
2 2 3
1 5 10
2 4 12

样例输出

27

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;public class Main {static class tool implements Comparable<tool> {int num;int price;int value;double rate;public tool(int parseInt, int parseInt1, int parseInt2, double v) {super();num=parseInt;price=parseInt1;value=parseInt2;rate=v;}@Overridepublic int compareTo(tool o) {return Double.compare(o.rate,rate);}}public static void main(String[] args) {Scanner sc=new Scanner(System.in);List<tool>tools=new ArrayList<tool>();String[] arr = sc.nextLine().split(" ");int n=Integer.parseInt(arr[0]);int c=Integer.parseInt(arr[1]);//容量for(int i=0;i<n;i++){String[] msg=sc.nextLine().split(" ");tools.add(new tool(Integer.parseInt(msg[0]),Integer.parseInt(msg[1]),Integer.parseInt(msg[2]),Integer.parseInt(msg[2])*1.0/Integer.parseInt(msg[1])));}Collections.sort(tools);int sum=0;for(tool t:tools){if(c<t.price)continue;int k=0;for(int i=1;i<=t.num;i++){if(i*t.price>c)break;else k=i;}sum+=k*t.value;c-=k*t.price;}// for(tool t:tools){//     System.out.println(t.num+" "+t.price+" "+t.value+" "+t.rate);// }System.out.println(sum);}
}

我的

道具的魅力值(贪心算法)相关推荐

  1. HNUCM 道具的魅力值(贪心算法)

    在某网络游戏中提供了一个道具库,在道具库中每种道具均有若干件(数量已知),游戏玩家购买一件道具将获得一定的魅力值. 已知每种道具的价格和魅力值,请编写一个程序,在总价格不超过某个上限的情况下使得所购道 ...

  2. 数据结构与算法之美(十四)算法思想——贪心算法

    目录 贪心算法介绍 贪心算法例子 1. 背包 2. 分糖果 3. 钱币找零 4. 区间覆盖 5. 区间覆盖的延伸:任务调度.教师排课 贪心算法经典应用 1. 霍夫曼编码 2. 最小生成树算法 3. 最 ...

  3. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  4. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  5. 拜托,别再问我贪心算法了!

    来自:码海 前言 上篇一文学会动态规划解题技巧 被不少号转载了,其中发现有一位读者提了一个疑惑,在求三角形最短路径和时,能否用贪心算法求解.所以本文打算对贪心算法进行简单地介绍,介绍完之后我们再来看看 ...

  6. Dijkstra 贪心算法 动态规划

    我认为 Dijkstra算法 的本质是 广度优先搜索, 而此处的广度是定义在路程的cost之上的. (就好比从圆心处向外扩散一个圆环,首次碰到的就是最近) 动态规划泛指,重叠子问题与原问题的推算关系( ...

  7. 三十六、贪心算法--集合覆盖问题

    一.贪心算法介绍 1.贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 2.贪心算法不是对所有问题都 ...

  8. matlab求解集合覆盖问题,贪心算法实践之集合覆盖问题

    介绍 贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法 贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解 ...

  9. 总结 贪心算法_这几道经典例题帮你轻松搞透贪心算法

    贪心算法概念叙述 运用贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想要达到局部最优 ...

最新文章

  1. 用二项逻辑斯蒂回归解决二分类问题
  2. 使用 Dapr 缩短软件开发周期,提高生产效率
  3. [Mac入门] 如果更快的打开程序或文件
  4. enum mysql byte_九、臭名昭著的 MySQL ENUM 类型 ( 上 )
  5. mysql 2008数据库配置文件_SQL Server 2008数据库的配置及连接
  6. 数据结构与算法学习笔记之 提高读取性能的链表(上)
  7. HDU 6178 2017 多校训练:Monkeys(DFS)
  8. 精美高清壁纸:2014年1月桌面日历壁纸免费下载
  9. linux a卡双显卡切换显卡,amd显卡驱动 双显卡切换
  10. HDU - 4565 So Easy!
  11. 美团面试-2016校园招聘
  12. Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...'
  13. 清华化学北航学计算机怎么选填志愿,2017年清华、北航多校采用大类招生,高考志愿该如何填报?...
  14. 【研究总结】基于出租车GPS轨迹数据的相关研究
  15. 腾讯云服务器安装MySQL并设置远程登录
  16. 删除页面引入的js或者css文件
  17. vue 实现邮箱收件人功能!!!没想到下拉框完全可以做到
  18. seurat提取表达矩阵_Hemberg-lab单细胞转录组数据分析
  19. ArcGIS_空间插值分析
  20. 极大似然估计 最大后验概率估计

热门文章

  1. 索罗斯金融炼金术的重要信息
  2. const对象只能调用const成员函数、不能调用非const成员函数;非const对象可以调用const成员函数
  3. 题解 浣花溪公园【图论基本算法及应用】
  4. 前有百度高德,后有华为滴滴,腾讯地图该如何上演王者归来戏码?
  5. css 超出省略...
  6. 21.失真/低高通/振铃效应/旁瓣泄漏效应/频域滤波/图像深度/频带/线性滤波源码分析 -- OpenCV从零开始到图像(人脸 + 物体)识别系列
  7. FPGA学习笔记_Quartus II_In system sources and probes editor(ISSP)调试工具的使用
  8. dell电脑EliteBook开启虚拟化
  9. python浮点数运算问题
  10. java给时间增加减少几个小时的方法