#include <iostream>
#include <algorithm>
using namespace std;
int dp[101],v[101],value[101];
int main()
{
int n,m,x,volume,y,q,u;
cin>>n>>volume;
for(q=1;q<=n;q++)
{
int s,j,i,k;
cin>>s;
for(i=1;i<=s;i++)
{
cin>>v[i]>>value[i];
for(j=volume;j>=0;j--)
{
for(k=0;k<=s;k++)
{
if(j>v[k])
{
dp[j]=max(dp[j],dp[j-v[k]]+value[k]);
}
}
}
}
}
cout<<dp[volume];
return 0;
}
分组背包(dp)
最新推荐文章于 2022-03-28 19:37:39 发布