算法分析与设计-15-背包问题的贪心算法
来源:互联网 发布:lol钻石网吧mac 编辑:程序博客网 时间:2024/05/18 01:35
背包问题
#include <stdio.h> #include <iostream> #include<algorithm>using namespace std;#define N 1000struct bag{ int w;//物品的重量 int v;//物品的价值 double c;//物品的性价比 }a[1001]; bool cmp(bag a,bag b) { return a.c>=b.c; } double backpack(int n,bag a[],double c)//n表示物品的数量,a表示按照物品性价比排序后的数组,c表示剩余空间 { double cleft=c; int i=0; double b=0;//获得的价值 //当物品i可以装入背包中 while(i<n&&a[i].w<c) { c=c-a[i].w; b+=a[i].v; i++; } //说明物品不能完全装入背包 if(i<n) b+=1.0*a[i].v*c/a[i].w ; return b; } int main() { int c; int n; int i; printf("请输入物品的容量:\n");scanf("%d",&c);printf("请输入每个物品的数量:\n");scanf("%d",&n); printf("请输入每个物品的重量,价值:\n"); for(i=0; i<n; i++) { cin>>a[i].w>>a[i].v; a[i].c = 1.0*a[i].v/a[i].w; } sort(a, a+n, cmp);//按照性价比排序 printf("输出贪心算法最优解:\n"); cout<<backpack(n,a,c); return 0; }
运行效果:
0 0
- 算法分析与设计-15-背包问题的贪心算法
- 算法分析与设计2017-2-背包问题的贪心算法
- 算法设计与分析 普通背包 贪心
- 【算法设计与分析基础】背包问题
- 算法设计的背包问题-------------用贪心算法求解
- 0-1背包问题的多种算法设计与分析
- 背包问题的贪心算法
- 背包问题的贪心算法
- 贪心算法 - 背包问题
- 贪心算法----背包问题
- 【贪心算法】:背包问题
- 贪心算法-背包问题
- 贪心算法 背包问题
- 贪心算法-背包问题
- 【贪心算法】背包问题
- 贪心算法-背包问题
- 贪心算法--背包问题
- 背包问题-贪心算法
- 协议森林09 爱的传声筒 (TCP连接)
- RAID__2__创建RAID
- 字符串处理面试题;
- 解码后的视频流 加入 队列(深拷贝)
- 他是香港九龙皇帝,疯狂涂鸦51年,无数次进出警察局,黄家驹都曾为他写歌
- 算法分析与设计-15-背包问题的贪心算法
- 第九周项目2--对称矩阵压缩存储的实现与应用1
- spring中引入其他文件
- GNU编译优化级别-O -O1 -O2 -O3
- gdb watch
- Poj 3278 BFS(不多说话) Catch That Cow
- str_replace和substr_replace的区别
- 第九周项目2--对称矩阵压缩存储的实现与应用2
- 从坐拥40亿到一无所有 昔日富豪摆摊还债