貪心演算法之揹包問題 2021 1 17

2021-10-16 05:56:30 字數 1240 閱讀 6765

假設山洞有n種寶物,每種寶物有一定重量w和相應價值v

毛驢運載能力有限,只能運走m重量的寶物,一種寶物只能拿走一樣,

寶物可以分割,怎樣才能使毛驢運走寶物的價值最大呢?

#include

using

namespace std;

//第一眼看揹包問題怎麼和最優裝載問題有些相似呢

//它們都可以利用貪心策略來求解

//區域性最優:

//選擇價效比最大的寶物

intmain

(int argc,

char

**ar**)

;//寶物的價值

int v[10]

=;//價效比

float p[10]

=;//計算價效比

for(i=

0;i<10;

++i)

//與最優裝載類似,我們也將價效比進行排序

for(i=

0;i<

10;i++)}

}//輸出驗證

for(i=

0;i<

10;i++

)//毛驢的承載能力

float max=

19.0

;//記錄毛驢現在的承重量

float now=

0.0;

//記錄拉走的價值

float sum=

0.0;

//開始貪心選擇

for(i=

0;i<

10;i++

)else

}//輸出拿走的總價值

printf

("sum value is:\n\t%f\n"

,sum)

;return0;

}

p:

4.000000w:2

v:8p:3.000000w:5

v:15

p:2.500000w:8

v:20

p:2.000000w:9

v:18

p:1.600000w:5

v:8p:1.500000w:4

v:6p:1.400000w:5

v:7p:1.200000w:5

v:6p:1.000000w:5

v:5p:0.750000w:4

v:3sumvalue

is:51.000000

揹包問題(貪心演算法)

揹包問題 程式8 4 2.cpp 定義控制台應用程式的入口點。揹包問題 貪心演算法 include stdafx.h define maxnumber 20 typedef struct node object float find object wp,int n,float m i 0 while...

貪心演算法 揹包問題

詳細見原帖 我寫的是自己的感悟 揹包問題 有乙個揹包,揹包容量是m 150。有7個物品,物品可以分割成任意大小。要求盡可能讓裝入揹包中的物品總價值最大,但不能超過總容量。物品 a b c d e f g 重量 35 30 60 50 40 10 25 價值 10 40 30 50 35 40 30 ...

貪心演算法 揹包問題

貪心演算法 當前最優解 例如在刪除數的乙個例子中,乙個長度不大於240位的整數中,隨機刪除n個數,要求使得剩餘的數 從左到右的,組成乙個最小的整數 貪心步驟 例如 乙個數 1457326 n 4 1 找到當前最大的數 7 刪除 145326 2 找到當前最大的數 6 刪除 14532 3 找到當前最...