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背包

  • 2017年11月09日 21:38
  • 45KB
  • 下载

背包问题【01、完全(恰好or不超过)、多重】【尚未整理完】

背包问题 以下整理自:背包问题九讲笔记_01背包 摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理...

01背包问题

  • 2013年03月25日 21:34
  • 4KB
  • 下载

01背包问题C

  • 2014年05月24日 20:07
  • 2.17MB
  • 下载

遗传算法解01背包问题(Java)

遗传算法解01背包问题,并给出了完整可运行的java代码

01背包问题

  • 2012年12月16日 15:00
  • 1KB
  • 下载

01背包问题

  • 2015年03月25日 13:53
  • 2KB
  • 下载

动态规划_01背包问题_Java实现

什么是动态规划?动态规划就是将一个大问题不断向下拆分成小问题,直到拆分出的小问题可以求出其解,然后将小问题的解不断的向上合并,最终得到大问题的解决方案。...

C++编写的01背包问题

  • 2015年07月07日 10:52
  • 1.25MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:01背包
举报原因:
原因补充:

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