码迷,mamicode.com
首页 > 其他好文 > 详细

背包类问题解答——poj3624分析

时间:2014-07-16 23:44:24      阅读:418      评论:0      收藏:0      [点我收藏+]

标签:http   使用   os   io   for   问题   

习题网址:http://poj.org/problem?id=3624

试题分析:该类题通过限定物品总数量、总质量;并且初始化每个物品的起始质量和一个量化的性质。最后求解最值的量化性质的值是多少的问题。

该类问题主要是可以通过:父问题的最优解依赖于一些子问题的 最优解 这就是所谓的最优子结构

核心思想:dp(i,j) = max{dp(i-1,j),dp(i-1,j-Ci)+Wi}

AC代码分析:

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;
int bag[12900]; //背包
int w[3410],v[3410]; //输入的两个属性
int main()
{
int n,m;
cin >> n >> m;     //最开始的数量和规定的质量
for(int i=1; i<=n; i++) //这也正是两个数组
cin >> w[i] >> v[i];    //完成了所有的输入
// memset(bag,0,sizeof(bag));这句话主要是用来清理的功能数目小的时候可以不使用
for(int i=1; i<=n; i++)
for(int k=m; k>=w[i]; k--)
if( bag[k-w[i]]+ v[i] > bag[k] )//求两个最大值的过程
bag[k] = bag[k-w[i]]+ v[i];
cout << bag[m] << endl;
return 0;
}

背包类问题解答——poj3624分析,布布扣,bubuko.com

背包类问题解答——poj3624分析

标签:http   使用   os   io   for   问题   

原文地址:http://www.cnblogs.com/tianxia2s/p/3848829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!