听灌佬多
  • 板块灌水区
  • 楼主wangrunyang
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/11/26 20:00
  • 上次更新2024/11/26 21:10:11
查看原帖
听灌佬多
1052626
wangrunyang楼主2024/11/26 20:00

分组背包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;
}
2024/11/26 20:00
加载中...