01背包

原创 2016年08月29日 16:58:43

hdu 2602 Bone Collector

原题点击打开链接。
Tip:这里可以将每个物品都看成单独的阶段,对物品的取与不取就是决策,背包中物品的价值

#include<stdio.h>
#define N 1010
int dp[N][N],val[N],vol[N];
int main()
{
    int ncase;
    scanf("%d",&ncase);
    while(ncase--)
    {
        int n,v;
        scanf("%d %d",&n,&v);
        for(int i=1;i<=n;++i)
            scanf("%d",&val[i]);
        for(int i=1;i<=n;++i)
            scanf("%d",&vol[i]);
        for(int i=1;i<=n;++i)
            for(int j=0;j<=v;++j)
            {
                if(j>=vol[i])
                    dp[i][j]=dp[i-1][j]>(dp[i-1][j-vol[i]]+val[i])?dp[i-1][j]:(dp[i-1][j-vol[i]]+val[i]);//状态转移方程
                else
                    dp[i][j]=dp[i-1][j];
            }
        printf("%d\n",dp[n][v]);
    }
    return 0;
}

开始的时候dp数组开在了主函数内,太大开不出来,程序一直运行错误,多亏学长帮忙。
还有现在还是不是知道j变量为什么要从0开始遍历,欢迎大神解答。

相关题目

  1. 51nod 1085
版权声明:本文为博主原创文章,欢迎转载。

01背包状态压缩和记录路径

01背包的状态压缩   当然肯定是看了别人的博客,我再重复一下,大神链接:点击打开链接 1、        在看之前希望你已经弄懂了空间复杂度在O(n*w)的算法,空间的压缩到O(w)的状态,其...
  • Cai_Nia
  • Cai_Nia
  • 2016年12月14日 22:55
  • 1027

01背包路径输出

确实很少遇到要求输出背包路径的题,今天无聊整理了两种方法: code:(1) #include #include #include using namespace std; int dp[1000...
  • tomorrowtodie
  • tomorrowtodie
  • 2016年04月07日 23:56
  • 1083

算法提高 01背包

问题描述   给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个. 输入格式   输入的第一行包含两个整数n, m,分别表示物品...
  • qq_29656961
  • qq_29656961
  • 2017年01月13日 15:16
  • 466

01背包的递归求解

#include using namespace std; #define W 100 #define N 20 int w[N]; int v[N]; int x[N]; int knapsack...
  • liyingjie01
  • liyingjie01
  • 2016年05月16日 16:21
  • 756

NYOJ 题目860 又见01背包 (特别版01背包)

又见01背包 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述     有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不...
  • L_BestCoder
  • L_BestCoder
  • 2016年03月06日 20:37
  • 915

01背包状态方程详解

之前看过一段时间的背包,算不上学,纯属是
  • foreverlxm
  • foreverlxm
  • 2014年07月09日 00:58
  • 683

01背包的两种初始化问题

前段时间看DP中的01背包问题,大部分内容都好理解,网上也有很多关于这个问题的博客,但自己提出的问题没有得到解决,只好苦思冥想,以求进一步理解。   首先是问题描述:给定n种物品和一背包,物品i的重...
  • k_young1997
  • k_young1997
  • 2017年07月25日 09:07
  • 217

[动态规划] 01背包与完全背包

01背包(每种物品的状态为选择或不选择,最多只能选1件): 1.传统的二维数组,第i件物品的重量为w[i],价值为v[i] dp[i][j]保存的是选择前i件物品(每一件物品的状态为选与不选),在...
  • sr19930829
  • sr19930829
  • 2014年11月08日 09:40
  • 2256

01背包 一维数组写的01背包

#include #include int main() {     int n,i,j,w[10],p[10],m,f[100];     while(scanf("%d%d",&n,&m...
  • u013491149
  • u013491149
  • 2014年04月29日 10:15
  • 701

01背包 初学篇

01背包 初学
  • AC__GO
  • AC__GO
  • 2017年08月08日 16:45
  • 229
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:01背包
举报原因:
原因补充:

(最多只允许输入30个字)