题意:

k个块,给出每个块的高度hi,数量ci,不能超过的高度;

求这些块可以组成的最大高度一个。

思路:

大致可看这个题是一个背包,背包的承重是高度。

对于每个物品,有他的价值是高度,还有限定的数量,看到这里就是一个多重背包,

然后对于每个物品还有一个限制是对于他的特定高度,这种怎么处理其实很简单吧。

dp[]应该是一个存一个高度;

wa了一发,没有考虑一维的时候更新要从小到大。。所以按照特定高度升序一下就好了- -好菜啊

#include<cstdio>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std; typedef long long LL; const int N=4e2+10; struct asd{
int v;
int h;
int c;
};
bool cmp(asd x,asd y)
{
return x.h<y.h;
}
asd q[N];
int dp[N*100];
int n; int main()
{
int n,W;
scanf("%d",&n);
W=0;
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&q[i].v,&q[i].h,&q[i].c);
W=max(W,q[i].h);
}
sort(q+1,q+n+1,cmp);
memset(dp,0,sizeof(dp));
int ans=0;
int k,t;
for(int i=1;i<=n;i++)
{
k=1;
while(q[i].c-k>0)
{
t=k*q[i].v;
for(int j=q[i].h;j>=t;j--)
{
dp[j]=max(dp[j],dp[j-t]+t);
ans=max(ans,dp[j]);
}
q[i].c-=k;
k<<=1;
}
t=q[i].c*q[i].v;
for(int j=q[i].h;j>=t;j--)
{
dp[j]=max(dp[j],dp[j-t]+t);
ans=max(dp[j],ans);
}
}
printf("%d\n",ans);
return 0;
}

POJ 2392【多重背包】的更多相关文章

  1. poj 2392 多重背包

    题意:有几个砖,给出高度,能放的最大高度和数目,求这些砖能垒成的最大高度 依据lim排个序,按一层一层进行背包 #include<cstdio> #include<iostream& ...

  2. poj 1276 多重背包

    735 3 4 125 6 5 3 350 //735的最大额,3种,4个125,6个5,3个350 633 4 500 30 6 100 1 5 0 1 735 0 0 3 10 100 10 50 ...

  3. POJ 3260 多重背包+完全背包

    前几天刚回到家却发现家里没网线 && 路由器都被带走了,无奈之下只好铤而走险尝试蹭隔壁家的WiFi,不试不知道,一试吓一跳,用个手机软件简简单单就连上了,然后在浏览器输入192.168 ...

  4. poj 1742 多重背包

    题意:给出n种面值的硬币, 和这些硬币每一种的数量, 要求求出能组成的钱数(小于等于m) 思路:一开始直接用多重背包套上去超时了,然后就没辙了,然后参考网上的,说只需要判断是否能取到就行了,并不需要记 ...

  5. poj 1014多重背包

    题意:给出价值为1,2,3,4,5,6的6种物品数量,问是否能将物品分成两份,使两份的总价值相等. 思路:求出总价值除二,做多重背包,需要二进制优化. 代码: #include<iostream ...

  6. Dividing POJ - 1014 多重背包二进制优化

    多重背包模型  写的时候漏了一个等号找了半天 i<<=1 !!!!!! #include<iostream> #include<cstdio> #include&l ...

  7. Cash Machine POJ - 1276 多重背包二进制优化

    题意:多重背包模型  n种物品 每个m个  问背包容量下最多拿多少 这里要用二进制优化不然会超时 #include<iostream> #include<cstdio> #in ...

  8. POJ 1276 (多重背包) Cash Machine

    题意: 有n种纸币,已知每种纸币的面值和数量,求所能凑成的不超过cash的最大总面值. 分析: 这道题自己写了一下TLE了,好可耻.. 找了份比较简洁的代码抄过来了..poj1276 #include ...

  9. Cash Machine POJ 1276 多重背包

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 35387   Accepted: 12816 Description A B ...

  10. poj1742 多重背包的可行性问题

    http://poj.org/problem? id=1742 Description People in Silverland use coins.They have coins of value ...

随机推荐

  1. 国内90%以上的 iOS 开发者,对 APNs 的认识都是错的

    转:http://toutiao.com/a6276578687162040578/?tt_from=weixin&utm_campaign=client_share&app=news ...

  2. 生活娱乐 WIFI机器人(某机器发烧友自己动手做一台)

    某机器发烧友自己动手做一台WIFI机器人,以下是这位发烧友的自述!让我们一起来分享他的劳动成果-- 在经历了十多天的疯狂淘宝.组装.调试.拆卸.再组装.再调试的过程后,俺的Wifi Robot终于于2 ...

  3. pcapReader——源代码分析

    一.简单介绍 pcapReader是ndpi开源中的一个example. 大家能够从<ndpi directory>/example/pcapReader.c中找到它的源码.通过pcapl ...

  4. Intel Active Management Technology

    http://en.wikipedia.org/wiki/Intel_Active_Management_Technology Intel Active Management Technology F ...

  5. Arcgis Engine(ae)接口详解(2):featureClass查询

    //属性查询~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //IQueryFilter代表查询条件,QueryFilterClass代表只限于属性查询(就是没有空间查询) ...

  6. 图像处理之图像格式变换和色彩增强---rgb2hsi2hsv 色彩增强

    从昨天折腾到今天.再折腾下去我都要上主楼了  大致和灰度图均衡是一样的,主要是不能像平滑什么的直接对R,G,B三个分量进行.这样出来的图像时没法看的.因此我们要对亮度进行均衡.而HSI彩色空间中的分量 ...

  7. sanic官方文档解析之下载和Configuration

    1,sanic框架是做什么的? sanic的官方网址:https://sanic.readthedocs.io/en/latest/ sanic框架是一个类似于flask框架的在Python3.5以上 ...

  8. app直播原理

    之前写的一系列文章或者小经验一直没有时间去整理放在博客上,今天整理出来,之前是写在作业部落,语法是markdown,点击链接浏览,仅供参考,希望对你有帮助. https://www.zybuluo.c ...

  9. Scaling with Microservices and Vertical Decomposition

    Scaling with Microservices and Vertical Decomposition – dev.otto.de https://dev.otto.de/2014/07/29/s ...

  10. HTML——使用表格进行页面布局

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...