小阮的菜田
一个人一种命,各安天命吧。
C++博客
首页
新随笔
联系
聚合
管理
随笔-141 评论-9 文章-3 trackbacks-0
pku 3628 Bookshelf 2 (01背包)
题目意思是给你n个数,其中选取一些数使他们的和sum大于给定数M,求满足此条件的Min{M-sum},此题可以装化为01背包问题,刚开始可以把所有的数都加起来这时的sum一定大于M的,但此时的sum-M不一定是最小的,怎么才能得到最小的呢。可以这样想,令B=sum-M,要尽量在这B中减去一些原来加进去数,这样会使sum-M的差逐渐减小,这不就是01背包的模型吗,背包的容量为B,物品的价值与体积相同。尽量使其价值最大,那最后的到的差当然就是最小的。
#include
<
iostream
>
using
namespace
std;
int
N,H;
int
cows[
25
];
int
f[
1000001
];
int
inline max(
int
a,
int
b)
{
return
a
>
b
?
a:b;
}
int
main()
{
int
sum
=
0
, i,j;
cin
>>
N
>>
H;
for
(i
=
1
; i
<=
N;
++
i)
{
cin
>>
cows[i];
sum
+=
cows[i];
}
int
m
=
sum
-
H;
for
(i
=
1
; i
<=
N;
++
i)
//
ZeroOnePack(w[i], c[i])
for
(j
=
m; j
>=
cows[i];
--
j)
f[j]
=
max(f[j], f[j
-
cows[i]]
+
cows[i]);
cout
<<
m
-
f[m]
<<
endl;
return
0
;
}
参考:http://hi.baidu.com/zhouxc07/blog/item/898a103c35b886ce9e3d6262.html
posted on 2010-12-08 11:21
小阮
阅读(256)
评论(0)
编辑
收藏
引用
所属分类:
POJ
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
pku 2774 Long Long Message (最长公共子串, 后缀数组)
pku 3261 Milk Patterns ( 后缀数组, 二分答案)
pku 1743 Musical Theme ( 后缀数组, 二分枚举答案)
pku 1625 Censored! (AC自动机, DP, 高精度加法)
pku 1204 Word Puzzles (trie)
pku 1002 487-3279 (map)
pku 2533 Longest Ordered Subsequence (DP)
pku 3260 The Fewest Coins 多重背包+完全背包
pku 1276 Cash Machine 多重背包
pku 1948 Triangular Pastures (01背包)
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
<
2011年3月
>
日
一
二
三
四
五
六
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
C++程序设计语言(6)
POJ(13)
USACO(97)
计算几何(5)
数据结构和算法(20)
网络编程(1)
随笔档案
2011年10月 (2)
2011年6月 (3)
2011年5月 (2)
2011年4月 (6)
2011年3月 (17)
2011年2月 (25)
2011年1月 (24)
2010年12月 (28)
2010年11月 (34)
文章档案
2011年2月 (3)
搜索
最新评论
1. re: USACO 4.2.3 Job Processing (平均贪心)
如何证明其正确性
--膜
2. re: USACO 5.2.2 Electric Fences (模拟退火算法)[未登录]
666@匿名
--xixi
3. re: USACO 2.3.1 The Longest Prefix [未登录]
发现一个错误,对于测试实例
AE ABC CDEF .
ABCDEFG
错误
正确答案是3
--z
4. re: USACO 4.2.3 Job Processing (平均贪心)
平均的贪心,好像没听说诶。
--怡红公子
5. re: USACO 5.4.2 Canada Tour (DP)
不明白如何去除重复的,就是怎么解决两个人交叉问题?
--zyz913614263
阅读排行榜
1. 计算几何 - 判断线段相交(转)(3744)
2. N个点中求三个点组成的三角形面积最大(2059)
3. [网络流]最小路径覆盖问题 (二分图最大匹配, 最大流)(1764)
4. ural 1297 最长回文子串(后缀数组)(1687)
5. [网络流] 方格取数问题 ( 二分图点权最大独立集, 最小割模型, 最大流)(1378)
评论排行榜
1. USACO 5.2.2 Electric Fences (模拟退火算法)(3)
2. USACO 4.2.3 Job Processing (平均贪心)(2)
3. pku 1948 Triangular Pastures (01背包)(1)
4. USACO 2.3.1 The Longest Prefix (1)
5. pku 1625 Censored! (AC自动机, DP, 高精度加法)(1)