背包空间:50
三个物品
n 1 2 3
重量 10 20 30
价值 60 100 120
性价比 6 5 4
当作背包问题,用贪心算法,按性价比从高到低选取物品,获得最优值240。
由于物品可以分割,剩下空间20,装入物品3一部分,获得更好性能。
/*struct bag
{
int w;
int v;
double c;
}a[1001];
bool cmp(bag a,bag b)
{
if(a.c>b.c) return true;
return false;
}
double knapsack(int n, bag a[], double c)
{
double cleft = c;
int i = 0;
double b = 0;
while (i