多重揹包空間優化

 

有N種物品,第i種物品的體積是Ci,價值是Wi,每種物品的數量都是有限的,爲ni..現有容量爲V的揹包,請你放入若干物品,在總體積不超過V的條件下,使總價值儘可能大。

int main(){
	
	int N, V;
	cin >> N >> V;
	for(int i = 1; i <= N; i++)
		cin >> w[i] >> c[i] >> n[i];
	for(int i = 1; i <= N; i++)
		for(int j = V; j >= 0; j--)
			for(int k = 0; k <= n[i]; k++)
				if(k*c[i] <= j)
					dp2[j] = max(dp2[j], dp2[j - c[i]*k] + w[i]*k);
	cout << dp2[V];
	
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章