参考书本 背包问题
2016-02-27 00:36
337 查看
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int x[100] = { 0 }; //数组X用来存放路径 int val[100] = { -1 };//物品单价 int weight[100] = { -1 };//存放物品的重量 int isOverLoad(int n, int c) { int i, w = 0; for (i = 0; i < n; i++) w = w + x[i] * weight[i]; if (w>c)return 1; else return 0; } int getVal(int n) { int i, v = 0; for (i = 0; i < n; i++) v = v + x[i] * val[i]; return v; } void knap_1(int n, int flag, int c, int *price)//找到物品装包的最高价值量 { //标记0开始 //背包数量 C最大中量 价格 int i, j, p; if (isOverLoad(n, c)) //剪纸 return; if (n == flag) { p = getVal(n); if (*price < p) *price = p; return; } for (i = 0; i <= 1; i++) { x = i; knap_1(n + 1, flag, c, price); } } void knap_2(int n, int flag, int c,int price) { int i, j, p; if (isOverLoad(n, c))return; if (n == flag) { p = getVal(n); if (price == p) { printf("---------bag----------\n"); for (j = 0; j < n; j++) if (x[j] == 1) { printf("| | p %d: | |\n",j); printf("| |weight:%2d kg| |\n", weight[j]); printf("| |price: %2d $ | |\n\n", val[j]); } printf("----------------------\n\n"); getchar(); return; } return; } for (i = 0; i <= 1; i++) { x = i; knap_2(n + 1, flag, c, price); } } void main2222() { int price = 0, n, c, i; printf("iNPUT THE nmber of products\n"); scanf("%d",&n); printf("Input the weight of each product\n"); for (i = 0; i < n; i++) scanf("%d",&weight[i]); printf("Input the price of each product\n"); for (i = 0; i < n; i++) scanf("%d",&val[i]); printf("Input the limit weight the bag can overload\n"); scanf("%d",&c); knap_1(0, n, c, &price); knap_2(0,n,c,price); printf("The grass price : %d $",price); system("pause"); }
相关文章推荐
- html网页切换和framset布局
- c 数据算法参考书本 跳斑马
- win7 破解激活工具--windows loader
- iOS 根据经纬度获取地名,根据地名获取经纬度
- GlusterFS分布式文件系统快速管理
- 初学Phaser.js之碰撞检测
- POJ 3261 Milk Patterns(二分+后缀数组)
- log的简单说明
- [Locked] Group Shifted Strings
- 为MacOS X创建.bash_profile
- 备注 break continue return
- 垃圾回收器Garbage Collector
- 面向对象
- centos下安装SS5服务器
- processing 常用代码片段(持续更新)
- javamail 关于SSL的问题找了我一个星期之久
- 几种常用的正则表达式[转]
- jquery textSearch实现页面搜索 注意!!!!调用这个插件后,js事件绑定如,on、bind、live delegate全部失效,折腾了我一整天!!!
- Unity3d MonoBehaviour 的可重写函数整理
- JavaMail发送和接收邮件