貪心法之可分割揹包問題

2021-07-13 12:03:41 字數 509 閱讀 3064

複習演算法至貪心法,書上的舉例是可分割的揹包問題。可分割揹包問題很容易理解,只需要根據收益和重量的比值進行排序,首選比值較大者填入即可,若物品種類大於剩餘載重量,則填充剩餘載重量的此物品,在剩餘載重量足夠的情況下,依次將物品填入揹包即可。

這應該是揹包問題中最為簡易的了,待熬過這段時間的考試,準備好好將揹包九講理解理解。

書上的**不全且以類的形式實現,所以花了會兒時間寫出了相應的**,經測試可執行,**如下:

#include#include#include#define maxn 50

using namespace std;

double x[maxn];

struct t //定義乙個結構體

a[maxn];

bool cmp(t x,t y) //定義降序排列

int main()

if(i若有錯誤歡迎批評指正。

揹包問題需要好好理解……

特記下,以備後日回顧。

揹包問題 可分割

可分割的揹包問題 即挑菜單位價值最大的物品裝入即可。寶物 i12 3456 78910 重量w i 42 9558 5455 價值v i 38 186820 56715 求裝入寶物的最大價值,以及裝入寶物的序號。include include using namespace std 需要乙個結構體,...

揹包問題(可分割)

給定乙個載重量為m的揹包,考慮n個物品,其中第i個物品的重量 wi 價值vi 1 i n 要求把物品裝滿揹包,且使揹包內的物品價值最大。如果物品可以分割,則稱為揹包問題 貪心演算法 為方便計算,建立如下的資料結構,表示物品的引數 struct baga 1001 存放物品的陣列 排序因子 按價效比降...

貪心法之揹包問題

a,貪心演算法 該演算法應用於優化問題,即問題涉及通過一組配置來找出定義在這些配置上的目標函式的最小值或者最大值。為了求解給定的優化問題需要進行一系列的選擇,這個序列開始於某些易於理解的起始配置,然後從當前可能的配置中,反覆做出看起來是最好的決策。這個特點說明,從乙個良好的定義的配置開始,通過一系列...