HDU3236 Gift Hunting
/*
HDU3236 Gift Hunting
http://acm.hdu.edu.cn/showproblem.php?pid=3236
dp 滚动数组
*
*
*/
#include <cstdio>
#include <algorithm>
using namespace std;
const int Nmax=;
const int INF=1e9;
int dp[][][][];
int v1,v2,n,ans; struct A
{
int w;
int v;
int is;
}a[Nmax]; void init()
{
ans=-INF;
} int work()
{
int t=;
for(int j=;j<=v1;j++)
for(int k=;k<=v2;k++)
dp[t][j][k][]=dp[t][j][k][]=dp[t^][j][k][]=dp[t^][j][k][]=-INF;
dp[t^][][][]=;
for(int i=;i<=n;i++)
{
for(int j=;j<=v1;j++)
{
for(int k=;k<=v2;k++)
{
int v=a[i].v,w=a[i].w;
if(j-v>=)
{
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j-v][k][]+w);
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j-v][k][]+w);
}
if(k-v>=)
{
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j][k-v][]+w);
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j][k-v][]+w);
}
if(!a[i].is)
{
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j][k][]);
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j][k][]);
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j][k][]);
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j][k][]);
}
dp[t][j][k][]=max(dp[t][j][k][],dp[t^][j][k][]+w);
}
}
t^=;
for(int j=;j<=v1;j++)
for(int k=;k<=v2;k++)
dp[t][j][k][]=dp[t][j][k][]=-INF;
}
t^=;
for(int j=;j<=v1;j++)
for(int k=;k<=v2;k++)
{
ans=max(ans,dp[t][j][k][]);
ans=max(ans,dp[t][j][k][]);
}
return max(-,ans);
} int main()
{
//freopen("4.in","r",stdin);
int cases=;
while()
{
cases++;
scanf("%d%d%d",&v1,&v2,&n);
if(!n && !v1 && !v2)
break;
for(int i=;i<=n;i++)
scanf("%d%d%d",&a[i].v,&a[i].w,&a[i].is);
init();
printf("Case %d: %d\n\n",cases,work());
}
return ;
}
HDU3236 Gift Hunting的更多相关文章
- Gift Hunting(分组背包)
Gift Hunting Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- USACO . Greedy Gift Givers
Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts ...
- AngularJS in Action读书笔记6(实战篇)——bug hunting
这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...
- CF# Educational Codeforces Round 3 B. The Best Gift
B. The Best Gift time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- 快来玩“Gift大转盘”百分百赚好礼
现在开始到今年的最后一天,你天天都可以来转100%中奖的“ Gift大转盘 ”.代金券.产品折扣.精美纪念礼,没有多余规则.全部网友都可参加,转到就是你赚到,赶快转起来吧! >>活动主页& ...
- Android内存管理(2)HUNTING YOUR LEAKS: MEMORY MANAGEMENT IN ANDROID PART 2
from: http://www.raizlabs.com/dev/2014/04/hunting-your-leaks-memory-management-in-android-part-2-of- ...
- Codeforces Educational Codeforces Round 3 B. The Best Gift 水题
B. The Best Gift 题目连接: http://www.codeforces.com/contest/609/problem/B Description Emily's birthday ...
- 1002 GTY's birthday gift
GTY's birthday gift Time Limit ...
- [light oj 1328] A Gift from the Setter
1328 - A Gift from the Setter Problem setting is somewhat of a cruel task of throwing something at ...
随机推荐
- luogu1120 小木棍【数据加强版】 暴力剪枝
题目大意 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50.现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度.给出每段小木棍的长度,编程帮 ...
- oc2---类
// main.m // 第一个OC类,OC中的类其实本质就是一个结构体, 所以p这个指针其实就是指向了一个结构体,创建一个对象就是创建一个结构体指针, #import <Foundation/ ...
- Node.js:教程
ylbtech-Node.js:教程 1.返回顶部 1. Node.js 教程 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaS ...
- 虚基类——(1)定义人员类Person: 公有成员:姓名(Name); 保护成员:性别(Gender),年龄(Age); 构造函数和析构函数
题目描述: (1)定义人员类Person: 公有成员:姓名(Name): 保护成员:性别(Gender),年龄(Age): 构造函数和析构函数 (2) 从人员类Person派生学生记录类Student ...
- MySQL常见数据库引擎及比较
一:MySQL存储引擎简介 MySQL有多种存储引擎,每种存储引擎有各自的优缺点,大家可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB) ...
- 移动端web开发初探之Vuejs的简单实战
这段时间在做的东西,是北邮人论坛APP的注册页.这个注册页是内嵌的网页,因为打算安卓和IOS平台同时使用.因此实际上就是在做移动端的web开发了. 在这过程中遇到了不少有意思的东西. DEMO的git ...
- GoogleMap 获取自己的数字证书API key的步骤
http://dreamylights.blog.51cto.com/1163218/1360759 1. 进入到Google APIs Console页面 https://code.google.c ...
- Spring aop(实验写法)
1. 创建通知:定义一个接口 Public interface Sleepable { voidsleep(); }然后写一个Human类,他实现了这个接口 publicHuman implement ...
- ubuntu16 mysql 远程连接
打开配置文件: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 将下面一行注释掉: # bind-address = localhost 重启服务 sudo s ...
- js prototype 原型
//https://xxxgitone.github.io/2017/06/10/JavaScript%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1%E7%9A%84%E4% ...