[//]: # 分组背包最终优化
题目比较简单,主要是v和w也可以一维
#include<iostream>
using namespace std;
const int N=110;
int n,m,f[N],v[N],w[N];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
int s; scanf("%d",&s);
for(int k=1;k<=s;k++)scanf("%d%d",&v[k],&w[k]);
for(int j=m;j>=1;j--)
for(int k=1;k<=s;k++)
if(j>=v[k])f[j]=max(f[j-v[k]]+w[k],f[j]);
}
cout<<f[m];
}