01揹包問題

AcWing題目鏈接

#include<iostream>
using namespace std;
const int maxn = 1010;
int w[maxn], v[maxn];
int dp[maxn] = {0};
int main(){
	int N, V;
	cin>> N >> V;
	for(int i = 1; i <= N; i++){
		cin >> w[i] >> v[i];
	}
	for(int i = 1; i <= N; i++){
		for(int c = V; c >= w[i]; c--){
			dp[c] = max(dp[c], dp[c - w[i]] + v[i]);
		}
	}
	int ans = 0;
	for(auto x: dp) ans = max(ans, x);
	cout<<ans<<endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章