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

输入

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

输出

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

样例输入 Copy

3 10
2 2 3
1 5 10
2 4 12

样例输出 Copy

27
#include<bits/stdc++.h>
using namespace std;
int cnt[105],w[105],v[105],dp[105][105];struct node{int cnt;int w,v;double avg;
}e[1005];bool cmp(node x,node y){return x.avg>y.avg;
}
int main(){int n,c;while(cin>>n>>c){memset(w,0,sizeof(w));memset(cnt,0,sizeof(cnt));memset(v,0,sizeof(v));memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++){cin>>e[i].cnt>>e[i].w>>e[i].v;e[i].avg=e[i].v/(1.0*e[i].w);}sort(e+1,e+n+1,cmp);int sum=0;int num=1;while(num<=n){//最需要注意的就是这个退出循环的条件if(c<e[num].w){num++;continue;}int k=0;           for(int i=1;i<=e[num].cnt;i++){if(i*e[num].w>c)break;else k=i; }//   if(c-k*e[num].w==0)k--;sum=sum+k*e[num].v;c=c-k*e[num].w;num++;}cout<<sum<<endl;}return 0;
}

有任何问题欢迎评论区留言

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

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

    时间限制 : 1.000 sec 内存限制 : 128 MB 题目描述 在某网络游戏中提供了一个道具库,在道具库中每种道具均有若干件(数量已知),游戏玩家购买一件道具将获得一定的魅力值. 已知每种道具 ...

  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. html jsf ajax blur,JSF和AJAX:隐藏网站的一部分,直到第一个Ajax请求
  2. python与java的比较_Python和Java两者有什么区别?
  3. GDCM:ReadSelectedTags的测试程序
  4. 趣说游戏AI开发:曼哈顿街角的A*算法 1
  5. java无忧网_零基础java入门课程 - 学途无忧网 - 做技术的王者 - Powered By EduSoho
  6. python中的无参装饰器和有参装饰器
  7. 1575 Gcd and Lcm
  8. html雪碧图效果,html和css中雪碧图的使用
  9. Java Maven项目打包成可执行jar文件
  10. 体育计算机培训心得,体育网络培训心得
  11. js-对象深度克隆方法
  12. centos安装rabbitmq_SpringCloud之RabbitMQ安装
  13. c++ 11 中for循环新增的用法(基于范围的for循环)
  14. linux达梦服务重启,如何重启达梦数据库服务
  15. 超详细的Mac重装系统教程!让重装系统变得简单起来!
  16. 完全平方数的几种判定方法与算法用时
  17. interface和abstract interface
  18. 微信小程序,短信验证码登录,设置密码,密码强度校验
  19. 基于JavaSwing+MySQL实现的超市商品管理系统
  20. JDK8 ThreadLocal 源码解析与最佳实践

热门文章

  1. sakila数仓实战案例
  2. SDNU QLU 2022.10.15 新生赛
  3. 2021计算机一级选择题必背知识点,2021年度全国计算机等级考试MSOffice选择题必考.doc...
  4. android rom 寿命,LineageOS ROM 彻底放弃安卓 9 Pie,华为P20 Pro/小米5s等24款手机不再更新...
  5. linux键盘背光指令,在Linux下开启背光Led键盘的背光
  6. C语言实现可伸缩的栈结构
  7. mysql生成序列_mysql 自动生成编号函数
  8. 向大家推荐一款可以免费在线Word转pdf,jpg转pdf,ppt转pdf等各种格式转换的网站
  9. EasyExcel一单元格导出多图片
  10. 博士入坑必读-A-Z博士(PhD)顺利毕业必读指南