题目链接
78分代码如下
#include<bits/stdc++.h>
using namespace std;
int n,m,t,w[1005],v[1005],pos,dp[1005],a[1005][1005],x;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>x;
for(int j=1;j<=x;j++){
cin>>w[++pos]>>v[pos];
a[i][++a[i][0]]=pos;
}
}
for(int k=1;k<=n;k++){
for(int j=m;j>=0;j--){
for(int i=1;i<=a[k][0];i++){
if(j>=w[a[k][i]]){
int t=a[k][i];
dp[j]=max(dp[j],dp[j-w[t]]+v[t]);
}
}
}
}
cout<<dp[m];
return 0;
}