首页 > 其他分享 >acwing 分组背包问题

acwing 分组背包问题

时间:2022-10-17 23:00:26浏览次数:63  
标签:背包 int 每组 整数 分组 物品 1010 acwing

题面
有 N 组物品和一个容量是 V 的背包。

每组物品有若干个,同一组内的物品最多只能选一个。
每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。

求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。

输出最大价值。

输入格式
第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。

接下来有 N 组数据:

每组数据第一行有一个整数 Si,表示第 i 个物品组的物品数量;
每组数据接下来有 Si 行,每行有两个整数 vij,wij,用空格隔开,分别表示第 i 个物品组的第 j 个物品的体积和价值;
输出格式
输出一个整数,表示最大价值。

数据范围
0<N,V≤100
0<Si≤100
0<vij,wij≤100
输入样例
3 5
2
1 2
2 4
1
3 4
1
4 5
输出样例:
8

#include<bits/stdc++.h>
using namespace std;

int v[1010][1010],w[1010][1010],s[1010],f[1010],n,m,k;

int main(){
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>s[i];
		for(int j=0;j<s[i];j++)
			cin>>v[i][j]>>w[i][j];
	}
		
	for(int i=0;i<n;i++)
		for(int j=m;j>=0;j--)
			for(int k=0;k<s[i];k++)
			    if(j>=v[i][k]) 	f[j]=max(f[j],f[j-v[i][k]]+w[i][k]);
	cout<<f[m];
}

标签:背包,int,每组,整数,分组,物品,1010,acwing
From: https://www.cnblogs.com/Nikkie-02/p/16801061.html

相关文章

  • acinwg 多重背包问题 I
    题面有N种物品和一个容量是V的背包。第i种物品最多有si件,每件体积是vi,价值是wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输......
  • acinwg 多重背包问题 II
    题面有N种物品和一个容量是V的背包。第i种物品最多有si件,每件体积是vi,价值是wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输......
  • acwing 混合背包问题
    题面有N种物品和一个容量是V的背包。物品一共有三类:第一类物品只能用1次(01背包);第二类物品可以用无限次(完全背包);第三类物品最多只能用si次(多重背包);每种体积是v......
  • acwing 二维费用的背包问题
    题面有N件物品和一个容量是V的背包,背包能承受的最大重量是M。每件物品只能用一次。体积是vi,重量是mi,价值是wi。求解将哪些物品装入背包,可使物品总体积不超过背......
  • 01背包问题
    题面有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价......
  • 2022下半年 Acwing 第一篇:快排模板
    模板内容:C++voidquick(intq[],intl,intr){if(l>=r)return;intx=q[(l+r+1)>>1],i=l-1,j=r+1;while(i<j){doi++;while(q[i]<x);......
  • sqlserver实现group by实现group_concat分组并拼接一个字段
    前言:sqlserver在实现分组拼接一个字段的实现上较mysql比较复杂一些,如果实现类似功能需要借助:forxmlpath('')和stuff两个方法一起使用即可sql分组拼接示例:SELECTT......
  • 学生分组和选题【硬件课程设计】
    学生分组和选题【硬件课程设计】​​前言​​​​推荐​​​​学生分组和选题​​​​下载软件​​​​proteus7​​​​资源​​​​版本说明​​​​AltiumDesigner20​......
  • 报文、报文段、分组、包、数据报、帧、数据流 辨析
    报文、报文段、分组、包、数据报、帧、数据流的概念区别帧、报文、数据包的差别END......
  • 08.分组查询
    分组查询--根据员工所在地区分组,统计员工人数,工资总和,平均工资,最高工资,最低工资--方案1select'武汉'地区,count(*)员工人数,sum(PeopleSalary)工资总和,avg(People......