背包问题先记录一下
来源:互联网 发布:seo效果明显吗 编辑:程序博客网 时间:2024/05/16 06:18
<span style="font-family: Arial, Helvetica, sans-serif;">#include "stdafx.h"</span>
#include<stdio.h> #include<stdlib.h> #include<iostream> #include<queue> #include<climits> #include<cstring> using namespace std;const int c = 10; //背包的容量 const int w[] = { 0, 2, 2, 6, 5, 4 };//物品的重量,其中0号位置不使用 。 const int v[] = { 0, 6, 3, 5, 4, 6 };//物品对应的待加,0号位置置为空。 const int n = sizeof(w) / sizeof(w[0]) - 1; //n为物品的个数 int x[n + 1];void package0_1(int m[][11], const int w[], const int v[], const int n)//n代表物品的个数 {//采用从底到顶的顺序来设置m[i][j]的值 //首先放w[n] for (int j = 0; j <= c; j++)if (j < w[n]) m[n][j] = 0; //j小于w[n],所对应的值设为0,否则就为可以放置 else m[n][j] = v[n];//对剩下的n-1个物品进行放置。 int i;for (i = n - 1; i >= 1; i--)for (int j = 0; j <= c; j++)if (j < w[i])m[i][j] = m[i + 1][j];//如果j < w[i]则,当前位置就不能放置,它等于上一个位置的值。 //否则,就比较到底是放置之后的值大,还是不放置的值大,选择其中较大者。 else m[i][j] = m[i + 1][j] > m[i + 1][j - w[i]] + v[i] ?m[i + 1][j] : m[i + 1][j - w[i]] + v[i];}void answer(int m[][11], const int n){int j = c;int i;for (i = 1; i <= n - 1; i++)if (m[i][j] == m[i + 1][j]) x[i] = 0;else {x[i] = 1;j = j - w[i];}x[n] = m[i][j] ? 1 : 0;}int main(){int m[6][11] = { 0 };package0_1(m, w, v, n);for (int i = 0; i <= 5; i++){for (int j = 0; j <= 10; j++)printf("%2d ", m[i][j]);cout << endl;}answer(m, n);cout << "The best answer is:\n";for (int i = 1; i <= 5; i++)cout << x[i] << " ";system("pause");return 0;}
转载 http://blog.csdn.net/dapengbusi/article/details/7463968
0 0
- 背包问题先记录一下
- 先进行一下记录
- iOS:上传文件,先简单记录一下
- 先记录一下转化json特殊处理
- 第一次使用css样式啊,先记录一下先
- 这几天被这个搞的头晕,先记录一下。
- 一个手机自动化测试高手的博客地址-先记录一下
- NOJ1308 背包问题 (背包记录路径)
- 记录一下mysql中的问题
- jdk7 排序问题-记录一下
- 记录路径的背包问题
- 背包问题加记录路径
- 我的代码审查问题,先mark一下
- 开始学习动态规划---先解决下背包问题
- 先序遍历用于优化树形分组背包问题
- 先序遍历用于优化树形分组背包问题
- VC++程序启动画面会先看到MainFrame先闪一下再消失的问题解法
- 先测试一下............
- Java面试题之一对调两个数
- git完整教程
- java 单例模式,线程安全
- Caffe安装问题汇总
- 返回一张图片的主色调
- 背包问题先记录一下
- 4415: [Shoi2013]发牌|线段树|并查集
- pixhawk自学笔记之Mixer学习
- //全排列问题的详细解答
- linux yum命令详解(转)
- 统计某个字符串中的标点符号数(c++11)
- 关于SAP的用户出口
- linux 小命令收集
- 穷举——六角填数