Dreams
zju 3049 Diablo II Items
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2627
/**/
/*
3 100
1 102
2 104
100 300
输出:106
*/
#include
<
iostream
>
#include
<
algorithm
>
using
namespace
std;
struct
Node
{
int
normalPrice;
int
magicPrice;
}
;
int
main()
{
int
n,cost;
while
(cin
>>
n
>>
cost)
{
string
str;
Node infor[
1001
];
int
i,j,k,a,b,cc;
char
ch;
for
(cc
=
0
,k
=
0
,i
=
1
;i
<=
n;i
++
)
{
cin
>>
a;
ch
=
getchar();
if
(ch
==
'
\n
'
)
//
是换行符表示该行只有一个数
{
cc
+=
a;
continue
;
}
else
{
cin
>>
b;
if
(b
-
a
>
cost)
//
只能是有挣才会卖魔法价
{
infor[k].normalPrice
=
a;
infor[k
++
].magicPrice
=
b;
}
else
cc
+=
a;
}
}
if
(k
==
0
||
cc
>=
cost)
{
for
(i
=
0
;i
<
k;i
++
)
cc
+=
infor[i].magicPrice;
cc
-=
cost
*
k;
}
else
{
int
temp;
int
remain
=
cost
-
cc;
//
购买鉴定卷轴欠缺的钱
int
*
dp
=
new
int
[remain
+
1
];
//
dp[i]表示还差i元钱时损耗的最小价值
for
(i
=
0
;i
<=
remain;i
++
)
dp[i]
=
100000000
;
dp[
0
]
=
0
;
for
(j
=
0
;j
<
k;j
++
)
//
物品
{
temp
=
infor[j].magicPrice
-
infor[j].normalPrice
-
cost;
//
记得减去cost
//
temp表示亏损值
if
(infor[j].normalPrice
>=
remain
&&
dp[remain]
>
temp )
//
正常价格够买鉴定卷轴
dp[remain]
=
temp;
else
{
for
( i
=
remain
-
infor[j].normalPrice ; i
<=
remain ; i
++
)
//
i从remain - infor[j].normalPrice
if
(dp[remain]
>
dp[i]
+
temp)
dp[remain]
=
dp[i]
+
temp;
for
( i
=
remain ; i
>=
infor[j].normalPrice ; i
--
)
if
(dp[i]
>
dp[i
-
infor[j].normalPrice]
+
temp)
dp[i]
=
dp[i
-
infor[j].normalPrice]
+
temp;
}
}
if
(dp[remain]
==
100000000
)
//
无法以魔法价格出售
{
for
(i
=
0
;i
<
k;i
++
)
cc
+=
infor[i].normalPrice;
}
else
{
for
(i
=
0
;i
<
k;i
++
)
cc
+=
infor[i].magicPrice;
cc
-=
cost
*
k
+
dp[remain];
//
记得要扣掉买鉴定卷轴和损耗的钱
}
}
cout
<<
cc
<<
endl;
}
return
0
;
}
发表于 2009-04-01 12:22
DreamSky
阅读(236)
评论(1)
编辑
收藏
引用
所属分类:
DP
评论
#
re: zju 3049 Diablo II Items
似乎这组数据过不了
3 10
3 12
7 18
20 50
答案应该是31吧
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
hdu 2372 El Dorado
01-package
zju 1883 Tight Words
zju 3201 Tree of Tree
zju 2852 Deck of Cards
hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
hdu 2765 Recursively Palindromic Partitions
vijos 1313 金明的预算方案
vijos 1133 装箱问题
vijos 1317 开心的金明
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2009年4月
>
日
一
二
三
四
五
六
29
30
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
公告
导航
C++博客
首页
发新随笔
发新文章
联系
聚合
管理
统计
随笔: 84
文章: 7
评论: 49
引用: 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(6)
给我留言
查看公开留言
查看私人留言
随笔分类
asp相关(3)
(rss)
BFS(8)
(rss)
DFS(7)
(rss)
DP(27)
(rss)
greedy(9)
(rss)
LG(4)
(rss)
Math(7)
(rss)
Others(6)
(rss)
并查集(4)
(rss)
母函数(7)
(rss)
线段树
(rss)
字典树(4)
(rss)
随笔档案
2009年8月 (3)
2009年5月 (17)
2009年4月 (60)
2009年3月 (4)
文章分类
创作(1)
(rss)
随感(5)
(rss)
文学(1)
(rss)
文章档案
2010年12月 (1)
2010年8月 (1)
2009年8月 (1)
2009年5月 (1)
2009年4月 (3)
相册
乌镇
原野天地
百事百通
analogy_翻译_爱词霸在线词典
bia菜
CSS学习资料
DB
Feng
Happy峰
Wpl
Xredman
百度
北大ACM
福建师范大学ACM
谷歌
果树伯伯
杭电ACM
湖州师范学院主页
精品笑话
绿色软件
史艳婷
霜天晓角
天津大学ACM
厦门大学ACM
信息学竞赛
这是什么
浙大ACM
浙江工商大学ACM
浙江工业大学ACM
浙江林学院ACM
搜索
积分与排名
积分 - 46214
排名 - 474
最新评论
1. re: hdu 1074 Doing Homework
评论内容较长,点击标题查看
--guo
阅读排行榜
1. hdu 1171 Big Event in HDU(1765)
评论排行榜
1. hdu 1171 Big Event in HDU(9)