hdu4501——小明系列故事——买年货(多维背包)
题解:
思路:将v1,v2,k都当作一种体积,开三维dp数组,每种物品只能取一次
代码中的for循环是倒着进行的,知道01背包和完全背包的肯定明白,倒着进行的就代表每种物品只选择一次
代码:
1 #include<stdio.h>
2 #include<string.h>
3 #include<iostream>
4 #include<algorithm>
5 using namespace std;
6 const int maxn=105;
7 const int INF=0x3f3f3f3f;
8 int dp[maxn][maxn][6];
9 struct shudui
10 {
11 int a,b,val;
12 } m[maxn];
13 int main()
14 {
15 int n,v1,v2,k1;
16 while(~scanf("%d%d%d%d",&n,&v1,&v2,&k1))
17 {
18 for(int i=1; i<=n; ++i)
19 {
20 scanf("%d%d%d",&m[i].a,&m[i].b,&m[i].val);
21 }
22 memset(dp,0,sizeof(dp));
23 for(int l=1; l<=n; ++l)
24 {
25 for(int i=v1; i>=0; --i)
26 {
27 for(int j=v2; j>=0; --j)
28 {
29 for(int k=k1; k>=0; --k)
30 {
31 int temp=0;
32 if(i-m[l].a>=0)
33 temp=max(temp,dp[i-m[l].a][j][k]+m[l].val);
34 if(j-m[l].b>=0)
35 temp=max(temp,dp[i][j-m[l].b][k]+m[l].val);
36 if(k>0)
37 temp=max(temp,dp[i][j][k-1]+m[l].val);
38 dp[i][j][k]=max(dp[i][j][k],temp);
39 }
40 }
41 }
42 }
43 printf("%d\n",dp[v1][v2][k1]);
44 }
45 return 0;
46 }
其实感觉多维背包也是一种套路,主要是找到dp的维度
hdu4501——小明系列故事——买年货(多维背包)的更多相关文章
- HDUOJ----4501小明系列故事——买年货(三维背包)
		小明系列故事——买年货 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ... 
- hdoj--4501--小明系列故事——买年货(三维背包)
		小明系列故事--买年货 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tota ... 
- hdu 4501 小明系列故事——买年货_二维背包
		题目:你可以有v1元,v2代金券,v3个物品免单,现在有n个商品,商品能用纸币或者代金券购买,当然你可以买v3个商品免费.问怎么最大能买多少价值 题意: 思路二维背包,dp[v1][v2][v3]=M ... 
- hdu 4542 小明系列故事——未知剩余系
		小明系列故事——未知剩余系 题意:操作0表示某数有n个约数,操作1为某数有n个非约数:n <= 47777,若是存在小于2^62的数符合,则输出该数,否则若是不存在输出Illegal,若是大于2 ... 
- HDU 4511 小明系列故事——女友的考验 (AC自动机+DP)
		小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ... 
- HDUOJ-----4506小明系列故事——师兄帮帮忙
		小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ... 
- HDU 4511 小明系列故事——女友的考验 (AC自动机 + DP)
		小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ... 
- HDU 4528 BFS 小明系列故事——捉迷藏
		原题直通车:HDU 4528 小明系列故事——捉迷藏 分析: 标记时加两种状态就行. 代码: #include<iostream> #include<cstring> #inc ... 
- hdu 4506 小明系列故事——师兄帮帮忙【幂取模乱搞】
		链接: http://acm.hdu.edu.cn/showproblem.php?pid=4506 http://acm.hust.edu.cn/vjudge/contest/view.action ... 
随机推荐
- 【Spring】 Spring的核心容器
			Spring的核心容器 文章目录 Spring的核心容器 BeanFactory ApplicationContext 1.通过ClassPathXmlApplicationContext创建 2.通 ... 
- 开发进阶:Dotnet Core多路径异步终止
			今天用一个简单例子说说异步的多路径终止.我尽可能写得容易理解吧,但今天的内容需要有一定的编程能力. 今天这个话题,来自于最近对gRPC的一些技术研究. 话题本身跟gRPC没有太大关系.应用中,我用 ... 
- 前端知识(二)01-NPM包管理器-谷粒学院
			目录 一.简介 二.使用npm管理项目 1.项目初始化 2.修改npm镜像 3.npm install命令的使用 4.其它命令 一.简介 什么是NPM NPM全称Node Package Manage ... 
- winform 添加背景图 闪屏问题解决
			winform中只要添加了背景图片资源,窗体加载显示的时候就会出现不停的闪屏操作,网上找了很多方法,效果都不明显: 然后自己观察和思路:看窗体的加载过程,当有背景图的时候,首先出来的是背景图,之后背景 ... 
- day03 函数基本语法及特性  2. 参数与局部变量  3. 返回值  嵌套函数  4.递归  5.匿名函数  6.函数式编程介绍  7.高阶函数  8.内置函数
			本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ... 
- git branch --set-upstream-to=
			test@uat:/usr/server/app_server# git config --local -lcore.repositoryformatversion=0core.filemode=tr ... 
- __new__() to create it, and __init__() to customize it  类方法 实例方法
			https://docs.python.org/3/reference/datamodel.html#object.__init__ 
- (hive)hive优化(转载)
			1. 概述 1.1 hive的特征: 可以通过SQL轻松访问数据的工具,从而实现数据仓库任务,如提取/转换/加载(ETL),报告和数据分析: 它可以使已经存储的数据结构化: 可以直接访问存储在Apac ... 
- __init__ raises an exception, then __del__ will still be called
			issue 808164: socket.close() doesn't play well with __del__ - Python tracker https://bugs.python.org ... 
- 理解Latency和Throughput: 吞吐量和延迟
			Latency,中文译作延迟.Throughput,中文译作吞吐量.它们是衡量软件系统的最常见的两个指标. 延迟一般包括单向延迟(One-way Latency)和往返延迟(Round Trip La ... 
