/*
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的更多相关文章

  1. Gift Hunting(分组背包)

    Gift Hunting Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. USACO . Greedy Gift Givers

    Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts ...

  3. AngularJS in Action读书笔记6(实战篇)——bug hunting

    这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...

  4. 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 ...

  5. 快来玩“Gift大转盘”百分百赚好礼

    现在开始到今年的最后一天,你天天都可以来转100%中奖的“ Gift大转盘 ”.代金券.产品折扣.精美纪念礼,没有多余规则.全部网友都可参加,转到就是你赚到,赶快转起来吧! >>活动主页& ...

  6. 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- ...

  7. 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 ...

  8. 1002 GTY's birthday gift

    GTY's birthday gift                                                                       Time Limit ...

  9. [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 ...

随机推荐

  1. MyBatis中sqlSession操作数据库,不报错但无法实现数据修改(增、改、删)

    public void addCustomerTest() throws Exception { SqlSession sqlSession = MyBatisUtils.getSession(); ...

  2. 《Java程序设计》第16周周五:数据库连接 与 随机数的使用

    第一部分:实验项目 项目二:数据库初步. 目的:了解Java连接数据库的步骤与方法.以及MySQL数据库的安装与使用. 目标: (1)在机房安装上MySQL数据库. 安装成功 MySQL数据库 (2) ...

  3. 点击TButton后的执行OnClick和OnMouseDown两个事件的过程(其实是通过WM_COMMAND执行程序员的代码)

    问题的来源:在李维的<深入浅出VCL>一书中提到了点击TButton会触发WM_COMMAND消息,正是它真正执行了程序员的代码.也许是我比较笨,没有理解他说的含义.但是后来经过追踪代码和 ...

  4. 在ubuntu中安装与配置zsh与oh-my-zsh

    先补充点东西 1.ubuntu中默认安装了那些shell jiang@Linux:~$ cat /etc/shells # /etc/shells: valid login shells/bin/sh ...

  5. Razor Intro

    http://www.w3schools.com/aspnet/razor_intro.asp Razor is not a programming language. It's a server s ...

  6. linux 添加 msyql 开机自启动

    1.将服务文件拷贝到init.d下,并重命名为mysql cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 2.赋予可 ...

  7. 数组、链表、栈、队列和STL

    数组 数组是一种最基本的数据结构,它是内存上的一块连续存储空间.正因如此数组的随机访问很方便.但数组也有其固有的限制,大小分配后不能改变. STL中的数组 STL中的Array是静态数组模板,就是我们 ...

  8. Android网络编程随想录(四)

    前面三篇文章从最基础的TCP,HTTP协议理论开始,然后介绍了在Android的开发中所使用的HttpClient和HttpUrlConnection这两种Http客户端.在本文中,我们一起来学习一下 ...

  9. DB2大数据量优化查询解决方案

    利用DB2表分区的功能对大数据量的表进行分区,可以优化查询. 表分区介绍: 表分区是一种数据组织方案,它根据一列或多列中的值把表数据划分为多个称为数据分区 的存储对象. (我觉得表分区就类似于Wind ...

  10. 关于HTTPS通信机制的笔记

    一次安全可靠的通信--HTTPS原理 转自:腾讯开放社区raphealguo文章