分组背包Wrong Answer求调【玄关】
#include <bits/stdc++.h>
using namespace std;
#define int long long
int v[10011];
int w[10011];
int dp[10000011];
signed main(){
int maxv , n;
cin >> maxv >> n;
for(int i = 1;i <= n;i++){
int m;
cin >> m;
for(int j = 1;j <= m;j++){
cin >> v[i] >> w[i];
}
for(int j = maxv;j >= 0;j--){
for(int k = 1;k <= m;k++){
if(v[k] <= j){
dp[j] = max(dp[j] , dp[j - v[k]] + w[k]);
}
}
}
}
cout << dp[maxv] << "\n";
return 0;
}