分组背包(dp)
acwing例题#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;...
·
#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;
}
更多推荐
已为社区贡献3条内容
所有评论(0)