题意:有n个男孩,每个男孩对女神都有一个love值Li和递减值Bi(love值每天递减这么多)。女神要从这n个男孩中选出k个男孩来一起去玩耍(每天选择一个男孩),要使这k个男孩的love值之和最大。

分析:当选定的男孩一定时,肯定要尽早选择递减较快的男孩,所以先按照递减值由大到小排序,然后做01背包即可,花费是占一个人数(n个人中选择k个),价值是那一天的love值。

总结一句话就是:排序然后求一个恰好装满的01背包。

 1 #include <algorithm>
 2 #include <cstdio>
 3 using namespace std;
 4
 5 const int INF = -99999999;
 6 const int N = 1001;
 7 int dp[N];
 8 int n, k;
 9
10 struct Node
11 {
12     int l, b;
13     bool operator < ( const Node & o ) const
14     {
15         return b > o.b;
16     }
17 } node[N];
18
19 int main ()
20 {
21     while ( scanf("%d%d", &n, &k) != EOF )
22     {
23         for ( int i = 1; i <= n; i++ )
24         {
25             scanf("%d", &node[i].l);
26         }
27         for ( int i = 1; i <= n; i++ )
28         {
29             scanf("%d", &node[i].b);
30         }
31         dp[0] = 0;
32         for ( int i = 1; i <= n; i++ )
33         {
34             dp[i] = INF;
35         }
36         sort( node + 1, node + 1 + n );
37         for ( int i = 1; i <= n; i++ )
38         {
39             for ( int j = min( i, k ); j >= 1; j-- )
40             {
41                 dp[j] = max( dp[j], dp[j - 1] + node[i].l - ( j - 1 ) * node[i].b );
42             }
43         }
44         printf("%d\n", dp[k]);
45     }
46     return 0;
47 }

转载于:https://www.cnblogs.com/huoxiayu/p/4646404.html

hdu 2670 01背包变形相关推荐

  1. HDU 3466 01背包变形

    给出物品数量N和总钱数M 对于N个物品.每一个物品有其花费p[i], 特殊值q[i],价值v[i] q[i] 表示当手中剩余的钱数大于q[i]时,才干够买这个物品 首先对N个物品进行 q-p的排序,表 ...

  2. hdu 2184 01背包变形

    转自:http://blog.csdn.net/liuqiyao_01/article/details/8753686 题意:这是又是一道01背包的变体,题目要求选出一些牛,使smartness和fu ...

  3. codeforce Gym 101102A Coins (01背包变形)

    01背包变形,注意dp过程的时候就需要取膜,否则会出错. 代码如下: #include<iostream> #include<cstdio> #include<cstri ...

  4. P1734 最大约数和 01背包变形

    传送门 思路:01背包变形题.将i看成重量,i的因子看成价值即可.背包自然是s. /** * From: * Qingdao Agricultural University * Created by ...

  5. HDU 2546 饭卡 01背包变形

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

  6. hdu 3732(01背包转多重背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3732 思路:这么大的数据,用01背包肯定会TLE的,01背包转多重背包..最多也就11*11=121件 ...

  7. hdu 2955 01背包

    http://acm.hdu.edu.cn/showproblem.php?pid=2955 如果认为:1-P是背包的容量,n是物品的个数,sum是所有物品的总价值,条件就是装入背包的物品的体积和不能 ...

  8. 2022-9-2何以包邮(01背包变形)(c/c++实测满分)

    总结:         此题是背包问题的变形,物品的价值和重量有所改变,背包的容量限制有所改变,但核心动态规划求法没有改变.只需要在背包问题的解法上根据题意对物品表示,答案输出进行改变即可. 背包算法 ...

  9. poj 2063 Investment(01背包变形)

    http://poj.org/gotoproblem?pid=2063 (1)上限 m 一直上升的 n 次01背包问题,比一般的01背包多了一重循环: (2)本题出现了各种错误:1)刚开始,没注意 m ...

  10. hdu 1574(01背包)

    RP问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Des ...

最新文章

  1. 算法提高课-搜索-A*(A star)算法-AcWing 179. 八数码:A星算法求解
  2. 【转载】Few-shot learning(少样本学习)和 Meta-learning(元学习)概述
  3. 《生活随笔》相关内容将转移到个人微信公众号,本博客专注技术内容。
  4. python开发环境比较好_python开发环境比较好,python 集成开发环境哪个好
  5. DAO(Data Access Object ,数据访问对象)设计模式
  6. Hibernate JPA中@Transient、@JsonIgnoreProperties、@JsonIgnore、@JsonFormat、@JsonSerialize等注解解释
  7. C++函数的用法:erase函数
  8. 修改环境变量后,导致一些常用命令失效,如ll,ls,vi不能用
  9. php计算购置税1007无标题,新旧个税计算公式对比–ps:世界上最好的语言PHP
  10. (转)基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用...
  11. DNS资源记录类型的总结
  12. java邮件设置成可修改_Java实现发送邮件(可配置)忘记密码,发送邮件
  13. RYYB图像格式学习
  14. 解决:Firefox添加xpi扩展组件提示“此附件组件无法安装,未通过验证”
  15. 影子系统 是怎么一回事!-间歇博客
  16. 2021年危险化学品经营单位主要负责人试题及解析及危险化学品经营单位主要负责人理论考试
  17. Web爬虫|入门实战之实习僧(编码反爬)
  18. 强化Play To Earn生态,链游新势力海姆达尔Heimdallr蓄势待发
  19. 怎么压缩gif图大小?试试这个图片压缩攻略
  20. Sublime Text 3 简体中文汉化包使用方法

热门文章

  1. jquery检测input变化_检测jQuery中的输入变化?
  2. opencv 识别长方形_利用opencv识别并提取图片中的矩形
  3. Hive 星型模型入门
  4. wrong ELF class: ELFCLASS64
  5. nginx负载均衡算法
  6. 《网页设计心理学》一1.6 你最近是否有过灵光一现?
  7. 1.4 测试各阶段(单元、集成、系统 、Alpha、Beta、验收)
  8. 【Best Time to Buy and Sell Stock II】cpp
  9. 艾泰路由器端口卡死问题
  10. 禁止拖放对象文本被选择的方法