貪心演算法求可拆揹包問題

2022-08-24 11:21:14 字數 845 閱讀 5325

//

可拆揹包問題,c741

#include #define n 100

void

main()

for(i=1;i<=n-1;i++) //

對n件物品按單位重量的效益從大到小排序

for(j=i+1;j<=n;j++)

if(p[i]/w[i]w[j])

cw=c;s=0; //

cw為揹包還可裝的重量

for(i=1;i<=n;i++)

x[i]=(float)(cw/w[i]); //

若w(i)>cw,裝入一部分x(i)

s=s+p[i]*x[i];

printf(

"裝包:

"); //

輸出裝包結果

for(i=1;i<=n;i++)

if(x[i]<1) break;

else

printf(

"\n 裝入重量為%5.1f效益為%5.1f的物品.

",w[i],p[i]);

if(x[i]>0 && x[i]<1

) printf(

"\n 裝入重量為%5.1f效益為%5.1f的物品百分之%5.1f.

",w[i], p[i],x[i]*100

);printf(

"\n 所得最大效益為:%7.1f

揹包問題(貪心演算法)

揹包問題 程式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 找到當前最...