题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5501

现在有A1,B1,C1和A2,B2,C2这两道题,如果先做1再做2的得分是A1-B1*C1+A2-B2*(C1+C2),如果先做2在做1的得分是A2-B2*C2+A1-B1*(C1+C2),令先做1再做2的得分更高些,那么有A1-B1*C1+A2-B2*(C1+C2) >= A2-B2*C2+A1-B1*(C1+C2),解得B1*C2>=B2*C1

所以,只要B1*C2>=B2*C1,那么先做题1再做题2的分数就会更高。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;const int maxn = 1005;
struct Node
{int a,b,c;
}p[maxn];
int n,m,dp[maxn*3];bool cmp(Node A,Node B)
{return A.b * B.c > B.b * A.c;
}int main()
{int t;scanf("%d",&t);while(t--){memset(dp,0,sizeof(dp));scanf("%d%d",&n,&m);for(int i = 1; i <= n; i++)scanf("%d%d%d",&p[i].a,&p[i].b,&p[i].c);sort(p+1,p+1+n,cmp);for(int i = 1; i <= n; i++)for(int j = m; j >= p[i].c; j--)dp[j] = max(dp[j],dp[j-p[i].c] + p[i].a - j * p[i].b);int ans = 0;  for(int i = 0; i <= m; i++)   //这里要从dp[i]中寻找最大,因为dp[i]不一定会最大,因为dp[i]并不一定是递增的。ans = max(ans, dp[i]);  printf("%d\n", ans);  }return 0;
}

hdu 5501(贪心+01背包)相关推荐

  1. hdu 2546 饭卡【贪心+01背包基础题】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  2. HDU - 3466(01背包理解)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意:给你一些钱 m ,然后在这个国家买东西, 共有 n 件物品,每件物品价格P价值V还有一个很 ...

  3. hdu 3449 Consumer 01背包

    http://acm.hdu.edu.cn/showproblem.php?pid=3449 这个题AC的有点稀里糊涂(是1A过的),采用的01背包的方法: 思路:定义了两个数组用来存储最终结果和但购 ...

  4. HDU 2639(01背包求第K大值)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2639 Bone Collector II Time Limit: 5000/2000 MS (Jav ...

  5. Jam's balance HDU - 5616 (01背包基础题)

    Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side ...

  6. HDU2546 饭卡【贪心+0-1背包】

    饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  7. hdu 1881(简单01背包)

    毕业bg Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Des ...

  8. 玲珑杯”ACM比赛 Round #15 D 咸鱼商店【二分+01背包】

    题目链接:http://www.ifrog.cc/acm/problem/1125 题目大意:中文题目,题意请仔细看题面. 解题思路:二分+01背包     01背包的最终结果与其中的顺序无关,我们要 ...

  9. HDU - 最大报销额(01背包|贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864 Time Limit: 1000/1000 MS (Java/Others) Memory Li ...

最新文章

  1. Linux系统下的文件管理类常命令及使用方式
  2. Shell笔记9——Shell数组的应用实践
  3. CTFshow 命令执行 web51
  4. c语言编程怎么自学网,c语言函数
  5. xm文件怎样转换成mp3_酷狗音乐如何将歌曲转换成MP3格式?方法超级简单
  6. build 之前执行task_一次NPM前端项目的CI-Build速度优化
  7. python函数案例名片管理器_python案例:实现一个函数版的名片管理系统
  8. Xcode里-ObjC, -all_load, -force_load
  9. win10无法成功完成操作,文件包含病毒怎么办
  10. loadrunner常见问题及解决方案
  11. 【FFMPEG系列】之ffmpeg怎么利用gdb调试以及gdb调试快捷键
  12. .htaccess 基础教程(四)Apache RewriteCond 规则参数
  13. mc java 连接超时_Java进程CPU占用高导致的网页请求超时的故障排查
  14. sql 连接高级语言之后查询出现乱码_还有不会用 SQL 的程序员吗?
  15. Python数据分析U3-matplotlib可视化高级
  16. 关于魔兽的电脑优化配置方法
  17. 2022 ICPC Gran Premio de Mexico 1ra Fecha (B、D、E、F)
  18. mysql vs创建表_MYSQL基础三--表的操作一
  19. 2022春节拜年短信,快收藏了
  20. 2022-2028年全球与中国树突状细胞癌疫苗免疫治疗行业深度分析

热门文章

  1. mysql中的字典项是啥_常见数据库设计(1)——字典数据
  2. 全面布局大数据平台,银科控股签约神策数据
  3. 桑文锋PMCAFF之行:数据驱动产品和运营决策
  4. 获取用户精准地理位置信息(百度地图)
  5. 在VIM里面设置自动补全功能
  6. lucene创建索引
  7. SCOM 2012知识分享-21:无代理管理
  8. altas(ajax)控件(二十三):等级选择控件Rating
  9. 谈谈 Cookie 存取和IE页面缓存的问题
  10. dine with the dean judge business school