蚂蚁春招-2023.3.16-组装电脑-中等

文章描述了一个关于组装电脑的问题,其中涉及到动态规划的算法应用。给定每个零件的不同型号价格和性能,目标是在不超过特定预算的情况下,选择零件型号以获得最大性能。文章提出了使用动态规划的状态转移方程,并讨论了处理大数值时使用map代替数组的方法。最后给出了AC代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

组装电脑

Problem Description

小红准备买一些零件来组装电脑。已知电脑一共有n个零件,每个零件有若干个型号。小红现在知道了每个型号的对应价格 a i a_{i} ai,以及性能 v i v_{i} vi。小红需要每个零件选择一个型号,在总价格不超过x元的前提下,最终的总性能尽可能大。你能帮帮她吗?

input

第一行输入两个正整数n和x,代表电脑的零件数量以及小红最大的预算。 接下来的3∗n行,每三行用来描述一个零件的不同型号的价格和性能。
对于每个零件,第一行输入一个正数m,代表该零件有多少种型号。 1 ≤ n , m ≤ 40 , 1 ≤ a i , v i , x ≤ 1 0 9 1≤n,m≤40,1≤a_i ,v_i ,x≤10^9 1n,m40,1ai,vi,x109
保证所有m之和不超过40,即所有零件的型号数保证所有m之和不超过40,即所有零件的型号数量之和不超过40种。

ouput

如果无法完成组装,则直接输出-1。否则输出一个正整数,代表最终最大的性能。

Sample Input

2 4
2
1 2
3 5
3
3 2 3
5 6 7

Sample Output

11

题目类型、难度、来源

总体思路:

  • 使用动态规划。 d p [ i ] [ j ] dp[i][j] dp[i][j]表示买前i个零件,共花了j元(i从1算起,i=0表示没有零件)获得的最大性能。 c o s t [ i ] , p e r f [ i ] cost[i],perf[
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值