hdu 4501三重包问题
好好理解一下背包问题
从01包入手 内层的循环 是为了以后求解记录数据 因为只有一个取舍问题 所以只需要一层循环就可以
这里有三个背包 钱 积分 以及免费物品
那么 就需要三重循环
#include<stdio.h>
#include<string.h>
#define N 105
int dp[N][N][10];
int Max(int x,int y)
{
    if(x>y)
        return x;
    else
        return y;
}
int main()
{
    int n,v1,v2,t;
    int a[N],b[N],c[N];
    int i,j,k,l;
    while(scanf("%d%d%d%d",&n,&v1,&v2,&t)!=EOF)
    {
        for(i=0;i<n;i++)
            scanf("%d%d%d",&a[i],&b[i],&c[i]);
        memset(dp,0,sizeof(dp));
        for(i=0;i<n;i++)
        {
            for(j=v1;j>=0;j--)
                for(k=v2;k>=0;k--)
                    for(l=t;l>=0;l--)
                    {
                        int temp=0;
                        if(l>0)///这里得注意 控制条件不能写在循环里面  放在里面会减少其他包的数据
                            temp=Max(temp,dp[j][k][l-1]+c[i]);
                        if(k>=b[i])
                            temp=Max(temp,dp[j][k-b[i]][l]+c[i]);
                        if(j>=a[i])
                            temp=Max(temp,dp[j-a[i]][k][l]+c[i]);
                        dp[j][k][l]=Max(dp[j][k][l],temp);
                    }
        }
        printf("%d\n",dp[v1][v2][t]);
    }
    return 0;
}
hdu 4501三重包问题的更多相关文章
- hdu 4501 小明系列故事——买年货_二维背包
		题目:你可以有v1元,v2代金券,v3个物品免单,现在有n个商品,商品能用纸币或者代金券购买,当然你可以买v3个商品免费.问怎么最大能买多少价值 题意: 思路二维背包,dp[v1][v2][v3]=M ... 
- HDU 4501
		超市里有n件他想要的商品.小明顺便对这n件商品打了分,表示商品的实际价值.小明发现身上带了v1的人民币,会员卡里面有v2的积分,而且他能免费拿k件.他想知道他最多能买多大价值的商品. 由于小明想要的商 ... 
- hdu 4501 多维0-1背包
		小明系列故事——买年货 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ... 
- hdu 3236 二维背包
		明天来一发 hdu 4501 算是这题的简化版吧 
- hdu1171 Big Event in HDU 01-背包
		转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1171 Problem ... 
- HDU 1712 ACboy needs your help(包背包)
		HDU 1712 ACboy needs your help(包背包) pid=1712">http://acm.hdu.edu.cn/showproblem.php? pid=171 ... 
- HDU  1069---背包---Monkey and Banana
		HDU 1069 Description A group of researchers are designing an experiment to test the IQ of a monkey. ... 
- hdu 5104 Primes Problem(prime  将三重循环化两重)
		//宁用大量的二维不用量小的三维 #include <iostream> #include<cstdio> #include<cstring> using name ... 
- hdu 1203 转换的01包问题。。。。
		俗话说的话 正难则反.,. 这个基本的思想都用不好的话 回家种田去吧. #include<cstdio> #include<string.h> #include<ios ... 
随机推荐
- Access the value of a member expression
			Access the value of a member expression 解答1 You can compile and invoke a lambda expression whose bod ... 
- React拾遗(下)
			reconciliation(协调算法) react用于更新DOM的算法.基于两点假设,实现了一个启发的O(n)算法: 两个不同类型的元素将产生不同的树. 通过渲染器附带key属性,开发者可以示意哪些 ... 
- Bitmap添加水印效果
			package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ... 
- 【转载】    迁移学习简介(tranfer learning)
			原文地址: https://blog.csdn.net/qq_33414271/article/details/78756366 土豆洋芋山药蛋 --------------------------- ... 
- 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_10-课程详情页面静态化-课程详情模型数据查询接口
			根据课程详情页面写一个获取数据模型的接口 目录的数据来自于课程计划表 右侧是课程的图片 需要写一个接口 获取课程相关的所有信息. 所以就需要一个模型类,里面包含了基本信息.图片信息.等各种详情页面的信 ... 
- IntelliJ-svn配置与使用
			目录 IntelliJ-svn配置与使用 SVN的配置 版本控制主要操作按钮 版本控制相关的常用设置 Version Control窗口 @(目录) IntelliJ-svn配置与使用 SVN的配置 ... 
- 常用音频格式对应的采样率,每采样点bit数以及比特率
			Format SamplesPerSec BitsPerSample BitsPerSec(格式) (采样频率) (每采样点bit数) (比特率或位率)MEDIA_FORMAT_WAV 8kHz 16 ... 
- tomcat  是如何做到不同webapp 类隔离的
			这个问题的核心是classloader 上图中 启动类加载器,扩展类加载器,应用程序类加载器是 jvm 自带的类加载器. comm catalina shared webapp 是tomcat 扩 ... 
- 《C语言程序设计》学习笔记(二)
			第八章 函数 函数的基本概念 定义:函数由函数名.参数和函数体组成. 函数定义的一般形式: 类型说明符 函数名(形式参数声明) { [说明与定义部分] 语句: } 说明: 1.类型说明符用来说明函数的 ... 
- rebbitMQ的实现原理
			引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题.消息服务擅 ... 
