假設山洞有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 找到當前最...