POJ 2642 The Brick Stops Here 0-1背包
poj: http://poj.org/problem?id=2642
大意:
给出n(n<=200)块黄铜合金,还有它们的浓度和价钱。给出若干个个询问使它们在n块中取 M 块 使得这M块合金的浓度在[cMin*M, cMax*M]这个区间内所花费的价格最少。
这里很详细了。。。。http://blog.sina.com.cn/s/blog_9b95c19e010192vl.html
设计状态dp [i][j][v]表示在i个中买不超过价值为v的物品j件。
include<cstdio>
const int INF=999999;
const int MAXN=20000+10;
int w[201],p[201];
int dp[21][MAXN];
int main()
{
int N,M;
scanf("%d",&N);
for(int i=1;i<=N;i++)
scanf("%d%d",&w[i],&p[i]); for(int i=0;i<21;i++)
for(int j=0;j<MAXN;j++)
dp[i][j]=INF; int maxnum= N >20? 20: N;
dp[0][0]=0; for(int i=1;i<=N;i++)
{
for(int j=20000;j>=w[i];j--)
for(int k=1;k<=maxnum;k++)
if(dp[k-1][j - w[i] ]!=INF)
dp[k][j] = dp[k][j] < ( dp[k-1][j - w[i] ]+ p[i] )? dp[k][j] : ( dp[k-1][j - w[i] ]+ p[i] );
} int kase;
scanf("%d",&kase); for(int ri=0;ri<kase;ri++)
{
int L,R;
scanf("%d%d%d",&M,&L,&R);
L*=M;
R*=M; int ans=INF;
for(int i=L;i<=R;i++)
if(ans > dp[M][i] )
ans=dp[M][i]; if(ans==INF)
printf("impossible\n");
else
printf("%d\n",ans);
}
}
POJ 2642 The Brick Stops Here 0-1背包的更多相关文章
- POJ 1636 Prison rearrangement DFS+0/1背包
题目链接: id=1636">POJ 1636 Prison rearrangement Prison rearrangement Time Limit: 3000MS Memor ...
- POJ 1745 【0/1 背包】
题目链接:http://poj.org/problem?id=1745 Divisibility Time Limit: 1000MS Memory Limit: 10000K Total Sub ...
- poj1417 带权并查集+0/1背包
题意:有一个岛上住着一些神和魔,并且已知神和魔的数量,现在已知神总是说真话,魔总是说假话,有 n 个询问,问某个神或魔(身份未知),问题是问某个是神还是魔,根据他们的回答,问是否能够确定哪些是神哪些是 ...
- P1417 烹调方案 (0/1背包+贪心)
题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...
- 洛谷 P1064 金明的预算方案 (有依赖的0/1背包)
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”. ...
- 浙大PAT CCCC L3-001 凑零钱 ( 0/1背包 && 路径记录 )
题目链接 分析 : 就是一个 0/1 背包,但是需要记录具体状态的转移情况 这个可以想象成一个状态转移图,然后实际就是记录路径 将状态看成点然后转移看成边,最后输出字典序最小的路径 这里有一个很巧妙的 ...
- 牛客网 TaoTao要吃鸡 ( 0/1背包变形 )
题意 : 题目链接 分析 : 如果没有 BUG (即 h == 0 的时候)就是一个普通的 0 / 1 背包 需要讨论一下 h != 0 的情况 此时有就相当于有物品是有特权的 而且背包装有特权的物 ...
- POJ 2253 Frogger 最短路 难度:0
http://poj.org/problem?id=2253 #include <iostream> #include <queue> #include <cmath&g ...
- POJ 2632 Crashing Robots 模拟 难度:0
http://poj.org/problem?id=2632 #include<cstdio> #include <cstring> #include <algorith ...
随机推荐
- web api 特点
webapi有很多特点(我不想用优点这个词),比如说restful,支持路由,简单,类似mvc controller/action的代码编写方式,灵活的托管方式,和web的集成等等. Web API的 ...
- Kinect 开发 —— 骨骼追踪 (下)
基于景深数据的用户交互 骨骼数据中关节点不仅有X,Y值,还有一个深度值 除了使用WPF的3D特性外,在布局系统中可以根据深度值来设定可视化元素的尺寸大小来达到某种程序的立体效果. 下面的例子使用Can ...
- OpenCV —— 图像局部与部分分割(一)
背景减除 一旦背景模型建立,将背景模型和当前的图像进行比较,然后减去这些已知的背景信息,则剩下的目标物大致就是所求的前景目标了 缺点 —— 该方法基于一个不长成立的假设:所有像素点是独立的 场景建模 ...
- OpenCV —— 矩阵操作
多通道的矩阵 —— 通道是连续的!! 要将指向该数据类型的指针移动到下一通道,我们只需要将其增加1.如果想访问下一个“像素”或者元素集,则需要一定的偏移量 矩阵的step元素是矩阵中行的长度,单位为字 ...
- Android中级第九讲--相机调焦
博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 相机调焦:原理,使用竖直seekbar,根据用户拖拉来获得距离 ...
- CODEVS——T 3013 单词背诵
http://codevs.cn/problem/3013/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 De ...
- [Unit testing] data-test attr FTW
Most of time, we get used to use class name as a selector in the test. But one problem for this is c ...
- 分组的listview——ExpandableListView
开发使用到的数据统计时可以用分组的ExpandablelistView 效果:
- count 变量的使用
count:统计出现的次数,当某种情况发生时,执行 +1 的动作,+1 的动作常置于循环体内.基本结构如下: count = 0 while count < vnum and **: ... c ...
- dataguard主备延迟多长时间的查询方法
select value from v$dataguard_stats where name='apply lag';