K12257 制作手链

该程序通过动态规划解决了一个问题:在不超过特定重量限制的情况下,从给定的链珠中选择以最大化总价值。输入包括链珠的数量、重量限制以及每个链珠的重量和价值,输出是可能的最大价值。程序使用二维数组dp来存储子问题的解并构建最优解。

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

题目描述

母亲节快到了,小科想着要送给妈妈一件特别的礼物,他想亲手制作一条手链送给他的妈妈。所以小科来到珠宝店,他想用N(1≤N≤3500)个链珠制作成一条最好的手链。

每个链珠i都有重量Wi(1≤Wi≤400)和价值Di(1≤Di≤100),一个链珠最多可使用一次。但是手链不能太重,太重了妈妈戴起来会不舒服,所以他决定手链的总重量不能超过M(1≤M≤13000)。

给定重量总重量限制M以及N个链珠的重量和价值,请帮助小科计算出该手链最大可能的价值总和。

输入格式

第一行:空格分隔的两个整数N、M,N表示链珠个数、M表示总重量限制

第二行至第N+1行:第i个物品的重量W[i]和价值D[i]

输出格式

输出一行表示手链的最大价值。

输入输出样例

输入样例1:
4 6 1 4 2 6 3 12 2 7
 
输出样例1:
 
23

【耗时限制】1000ms 【内存限制】256MB

//
//Created by Carlgood.
//
//Note:This program is written in version DEV-C++ 5.11.
//Subject source:"hppt://oj.codingle.cn"
# include <iostream>
# include<cmath>
# include<string>
# in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值