A Za, A Za, Fighting...
坚信:勤能补拙
PKU 1260 Pearls
问题:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1260
思路:
简单DP,但是就是想不到...
代码:
1
#include
<
stdio.h
>
2
#include
<
stdlib.h
>
3
#include
<
string
.h
>
4
#define
MAX_LEN 101
5
#define
INF 0x7FFFFFFF
6
#define
min(a,b) ((a)<(b) ? (a) : (b))
7
int
num[MAX_LEN], price[MAX_LEN];
8
int
sum[MAX_LEN];
/*
aux
*/
9
int
table[MAX_LEN];
10
int
c;
11
12
/*
13
* f[i] represent the lowest possible price needed to buy list[1..i], so:
14
* f[i] = min (f[k] + (num[k+1]+
+num[i]+10)*price[i]), 0<=k<i-1
15
*/
16
int
17
dp()
18
{
19
int
i, k, tmp;
20
sum[
0
]
=
0
;
21
for
(i
=
1
; i
<=
c; i
++
)
22
sum[i]
=
sum[i
-
1
]
+
num[i];
23
table[
0
]
=
0
;
24
for
(i
=
1
; i
<=
c; i
++
) {
25
table[i]
=
INF;
26
for
(k
=
0
; k
<=
i
-
1
; k
++
) {
27
tmp
=
table[k]
+
(sum[i]
-
sum[k]
+
10
)
*
price[i];
28
table[i]
=
min(table[i], tmp);
29
}
30
}
31
return
table[c];
32
}
33
34
int
35
main(
int
argc,
char
**
argv)
36
{
37
int
i, tests;
38
scanf(
"
%d
"
,
&
tests);
39
while
(tests
--
) {
40
scanf(
"
%d
"
,
&
c);
41
for
(i
=
1
; i
<=
c; i
++
)
42
scanf(
"
%d %d
"
, num
+
i, price
+
i);
43
printf(
"
%d\n
"
, dp());
44
}
45
}
posted on 2010-08-18 09:33
simplyzhao
阅读(141)
评论(0)
编辑
收藏
引用
所属分类:
C_动态规划
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
PKU 3670 Eating Together
PEARL 硬币找零(动态规划)
USACO Broken Necklace
PKU 1456 Supermarket
PKU 1260 Pearls
PKU 1179 Polygon
PKU 1157 Little Shop of Flowers
[最长上升子序列 nlogn] PKU 1631 Bridging signals
[最长上升子序列 n^2]PKU 1887 Testing the CATCHER / PKU 2533 Longest Ordered Subsequence
PKU 2192 Zipper
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2010年11月
>
日
一
二
三
四
五
六
31
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
1
2
3
4
5
6
7
8
9
10
11
统计
随笔 - 209
文章 - 0
评论 - 7
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
A_排序(7)
(rss)
B_搜索(47)
(rss)
C_动态规划(25)
(rss)
D_贪心(1)
(rss)
E_数据结构(6)
(rss)
F_图算法(16)
(rss)
G_其他(42)
(rss)
M_面试题集锦(17)
(rss)
P_珠玑
(rss)
R_找工复习2011(42)
(rss)
Z_小小知识点(3)
(rss)
随笔档案
2012年2月 (1)
2011年10月 (7)
2011年9月 (14)
2011年8月 (14)
2011年7月 (15)
2011年6月 (9)
2011年5月 (6)
2010年11月 (6)
2010年10月 (28)
2010年9月 (30)
2010年8月 (40)
2010年7月 (32)
2010年6月 (7)
搜索
最新评论
1. re: 2011字符串-最长重复子串,后缀数组[未登录]
5123
--123
2. re: 2011找工复习计划
明年秋季开找工作,表示难望楼主项背,学习了!
--QWhy
3. re: 2011找工复习计划
同学你好厉害呀!
--QWhy
4. re: 2011分治-平面最近点对(附C++源代码)
好东西啊,非常感谢!写的很简洁
--co
5. re: 2011知识点 - 优先级反转
@simplyzhao
呵呵,我最近也在找工作,国庆后去Marvell面试,不知道博主有没有时间交流下。
我的邮箱就是我的用户名@gmail。
--williamwue
阅读排行榜
1. epoll方法实现non-blocking socket(4629)
2. 根据(1,5)随机数生成器,生成(1,7)之内的随机数(3425)
3. [Tips][Original] qsort应用于指针数组与二维数组(字符)的差异(2113)
4. 2011分治-平面最近点对(附C++源代码)(1125)
5. 2011知识点 - 优先级反转(925)
评论排行榜
1. 2011知识点 - 优先级反转(3)
2. 2011找工复习计划(2)
3. 2011分治-平面最近点对(附C++源代码)(1)
4. 2011字符串-最长重复子串,后缀数组(1)
5. 2011知识点-TCP 区分消息边界[zz](0)