【c语言】背包问题的贪心法
生活随笔
收集整理的這篇文章主要介紹了
【c语言】背包问题的贪心法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include?<stdio.h>
struct?good{
int?No;//物品編號?
float?weight;
float?value;
float?pw;//物品單位重量的價值?
};int?main(){
int?c,number,a,V,W;//c為背包容量,nubmber為物品數量,V為總重量,W總重量?
int?i,j;
i=0;
j=0;
//輸入?
scanf("%d?%d",&number,&c);
struct?good?arr[number];
for(i=0;i<number;i++){
scanf("%f?%f",&arr[i].weight?,&arr[i].value?);
arr[i].No?=i;
arr[i].pw?=arr[i].value?/arr[i].weight?; ????????
}//以權重排序從大到小?降序?struct?good?temp;for(i=0;i<number-1;i++){for(j=0;j<number-1-i;j++){if(arr[j].pw?<arr[j+1].pw?){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}//選取
for(i=0;i<number;i++)
{W=W+arr[i].weight;V=V+arr[i].value;if(W>c)?{W=W-arr[i].weight;V=V-arr[i].value;break;}
}
printf("%d\n%d",W,V);
return?0;
}
總結
以上是生活随笔為你收集整理的【c语言】背包问题的贪心法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一百零七期:她说,嫁人就选程序员!
- 下一篇: 五、应用程序与驱动程序交互(缓冲模式)