百度之星5697

Problem Description
大赛将至,摆在你面前的是 n 道题目,第  i(1in)  道题目能提升  ai  点智力值,代码量为  bi  KB,无聊值为  ci  ,求至少提升 m 点智力值的情况下,所做题目代码量之和 无聊值之和最小为多少。

样例解释:

选择第1、3、4道题
 

Input
多组测试数据

第一行两个整数 n,m(0<n400)
接下来 n 行每行三个数, ai,bi,ci(0<bi,ci1000,0<ai800)
0<mai800
 

Output
一个数,至少提升 m 点智力值的情况下,所做题目代码量之和 无聊值之和的最小值。
 
思路
核心是最小乘积问题,把和的乘积转化为一个目标量
步骤:
从只有一维数据的两侧入手(得到AB边)
利用滚动数组的动态规划,实质是01背包,找到一个在此基础上的最优解,同时返回得到图中的坐标(sumx和sumy)
根据几何性质找到一个更小的C点
分AC和CB两边重复之前的操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值