这是背包专题的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