【c++刷题Day1】专题1背包T1

本文介绍了如何使用C++解决一个背包问题,小科试图用有限的钱购买不同品牌鞋子,以获得最大blingbling值之和。这是一个分组01背包问题,通过动态规划求解。
摘要由CSDN通过智能技术生成

这是背包专题的T1
在这里插入图片描述📣

题目描述

❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️
小科的生日快到了,小科的妈妈给了小科M元钱用来购买生日礼物,小科想为自己买一些漂亮的鞋,于是小科拿着M元钱来到了一家鞋店。鞋店里有N个品牌的鞋子。每个品牌都有很多双不同的鞋子。小科不想买两双相同牌子的鞋子,也就是说每种牌子的鞋子他最多买一双。每双鞋子都有一个blingbling值,小科想知道他的M元钱如果都用来购买鞋子的话,他可以获得的最大blingbling值之和是多少?
🔥输入格式

第1行:两个空格分隔的整数N和M,表示鞋店里有N个品牌,小科有M元钱。

第2行:N个空格分隔的整数,其中第i个整数C[i]表示品牌i的鞋有C[i]双。

接下来N行,其中第i行有C[i]个空格分隔的整数,分别表示第i个品牌的C[i]双鞋的价格。

接下来N行,其中第i行有C[i]个空格分隔的整数,分别表示第i个品牌的C[i]双鞋的blingbling值。
🔥输出格式

一行:一个整数,表示小科可以获得的最大blingbling值之和。
❄️输入输出样列
🔥输入样例1:

3 10
2 2 2
3 5
3 2
6 4
2 3
4 5
6 5

🔥输出样例1:

12

说明

🔥【数据范围】

1 <= N <= 100,1 <= C[i] <= 100,1 <= M <= 5000,1<= 任意一双鞋的blingbling值 <= 1000。
❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️

🏴‍☠️思路

这是一个典型的分组背包问题,可以当成多个01背包做。

💯代码

#include <iostream>
using namespace std ;
const 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

{∞}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值