首页 > 其他 > 详细

nyoj开心的小明

时间:2014-05-11 06:47:31      阅读:332      评论:0      收藏:0      [点我收藏+]

这个问题是01背包,而对于编程之美那道是完全背包问题,在编程之美中也有一个0,1背包问题。

而且是容量是小于等于,不是等于,对于是否等于,在初始化参数时候不一样,不小于全部初始化为0,恰好等于,初始化为无穷大,除了0.问什么呢?看算法入门竞赛那本,

背包问题其实不是很好理解,但是代码最终形式很简单,我要学会将问题抽象出来e利用此方法求解

 

#include<iostream>
#include<memory.h>
using namespace std;
const int N=30000;
int dp[N];
int main()
{
    int len;
    cin>>len;
    while(len--)
    {
    memset(dp,0,sizeof(dp));
    int V;
    cin>>V;
    int n;
    cin>>n;
    while(n--)
    {
        int size;
        int value;
        cin>>size;
        cin>>value;

      for(int j=V;j>=size;j--)
      {

          dp[j]=max(dp[j],dp[j-size]+value*size);
      
      
      }
    
    
    
    }
    cout<<dp[V]<<endl;



    
    
    
    
    }


    system("pause");


}

nyoj开心的小明,布布扣,bubuko.com

nyoj开心的小明

原文:http://www.cnblogs.com/hansongjiang/p/3720969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!