hdu 3535 背包综合题
/*
有n组背包,每组都有限制
0、至少选一项
1、最多选一项
2、任意选
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; const int maxn=;
const int INF=0xfffffff;
int dp[maxn][maxn];//第i组,剩余时间j的最大价值
int w[maxn],v[maxn];
inline int max(int a,int b){return a>b?a:b;}
int main()
{
int n,t,m,flag,i,j,k;
while(~scanf("%d%d",&n,&t))
{
memset(dp[],,sizeof(dp));
for(i=;i<=n;i++)
{
scanf("%d%d",&m,&flag);
for(j=;j<=m;j++) scanf("%d%d",w+j,v+j);
if(flag==)
{
for(j=;j<=t;j++) dp[i][j]=-INF;
for(j=;j<=m;j++)
for(k=t;k-w[j]>=;k--)
dp[i][k]=max(dp[i][k],max(dp[i-][k-w[j]]+v[j],dp[i][k-w[j]]+v[j]));//这组不选,第一次选,多次选
}
else if(flag==)
{
for(j=;j<=t;j++) dp[i][j]=dp[i-][j];
for(j=;j<=m;j++)
for(k=t;k-w[j]>=;k--)
dp[i][k]=max(dp[i][k],dp[i-][k-w[j]]+v[j]);//这组不选,第一次选
}
else
{
for(j=;j<=t;j++) dp[i][j]=dp[i-][j];
for(j=;j<=m;j++)
for(k=t;k-w[j]>=;k--)
dp[i][k]=max(dp[i][k],max(dp[i-][k-w[j]]+v[j],dp[i][k-w[j]]+v[j]));//这组不选,第一次选,多次选
}
}
int ans=max(dp[n][t],-);
printf("%d\n",ans);
}
return ;
}
hdu 3535 背包综合题的更多相关文章
- HDU 1712 ACboy needs your help (分组背包模版题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712 有n门课,和m天时间.每门课上不同的天数有不同的价值,但是上过这门课后不能再上了,求m天里的最大 ...
- hdu 2191 珍惜现在,感恩生活 多重背包入门题
背包九讲下载CSDN 背包九讲内容 多重背包: hdu 2191 珍惜现在,感恩生活 多重背包入门题 使用将多重背包转化为完全背包与01背包求解: 对于w*num>= V这时就是完全背包,完全背 ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- HDU 1248 寒冰王座(完全背包裸题)
寒冰王座 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU 2602 Bone Collector(01背包裸题)
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- HDU 2602 - Bone Collector - [01背包模板题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Many years ago , in Teddy’s hometown there was a ...
- HDU 1284 钱币兑换问题(全然背包:入门题)
HDU 1284 钱币兑换问题(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1284 题意: 在一个国家仅有1分,2分.3分硬币,将钱N ( ...
- HDU 1114 Piggy-Bank(完全背包模板题)
完全背包模板题 #include<cstdio> #include<cstring> #include<algorithm> using namespace std ...
- HDU 2191 珍惜现在,感恩生活(多重背包模板题)
多重背包模板题 #include<iostream> #include<cstring> #include<algorithm> using namespace s ...
随机推荐
- mysql查看版本,编码
SELECT * FROM gps_gpsinfo t WHERE t.reportdate < TO_DATE('2019/4/28 10:05:07', 'yyyy-MM-dd hh24:m ...
- Java 获取Web项目相对webapp地址
例如, import java.io.File; import java.io.FileInputStream; import javax.servlet.http.HttpServletReques ...
- php+croppic.js实现剪切上传图片
最近需要实现裁剪图片上传,想起之前公司用到的一个插件,却不知道叫什么名字了. 在网上找了有些时间,最终找到了这个网站. http://www.croppic.net/ 因为官网文档全部都是英文,所以看 ...
- 深入解析AJAX的原理
AJAX:Asynchronous JavaScript And Xml(异步的JS和XML) 同步:客户端发起请求>服务端的处理和响应>客户端重新载入页面(循环) 异步:客户端实时请求& ...
- js操作地址栏
//判断地址里是否有?号,如果没有就从最后一个/截到最后,如果有?就从最后一个/截至?号处 listTable.url = location.href.lastIndexOf("?" ...
- python3.7 倒计时
#!/usr/bin/env python __author__ = "lrtao2010" # python3.7 倒计时 import time for i in range( ...
- Android 获取当前应用的版本号+版本号比较
前言:因为项目更新的时候需要一些版本号的信息,后台返回两个string,一个是最低兼容版,一个是最新版.所以拿到数据后要比较一下,所以封装了一个Common包来处理. Step 1 废话不多说, ...
- Redis实现之链表
链表 链表提供了高效的节点重排能力,以及顺序性的节点访问顺序,并且可以通过增删节点来灵活地调整链表的长度.作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有内置这 ...
- ogre3D学习基础17 --- 如何手动创建ogre程序
建立自己的Ogre程序 一直以来都是使用ExampleApplication.h来写程序,现在来看看它到底有什么神奇的地方. 首先,我们新建一个win32空项目 然后配置环境 最后新建define.c ...
- Python学习-day15-JavaScript
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...