小P寻宝记——粗心的基友
来源:互联网 发布:ntfs for mac 官网 编辑:程序博客网 时间:2024/05/06 14:18
Problem Description
这对好基友他们在经历无数的艰难险阻后,终于找到了宝藏。无奈的是这一对好基友竟然是一样的粗心,又忘记了带一个大一点的包包,可惜啊、、选择又出现了啊、、
已知包的体积是v,每种宝贝只有一个,宝贝的体积是pi,价值是wi。求出这对粗心的基友可以最多带走价值多少的宝藏。
Input
输入数据有多组。
每组第一行有两个正整数n(n <= 10000)和v(v <= 10000)分别表示n种宝贝和包的体积。
接下来n行,每行有两个正整数vi, wi。
分别表示每种宝藏的体积vi (vi<=1000),价值wi(wi<=1000)。
Output
这对基友所能带走的最多的宝藏。
Example Input
5 10 1 52 43 34 25 1
Example Output
14
Hint
01背包问题, 提交时总是runtime error 好烦。
01
#include<stdio.h>
02
#include<string.h>
03
int
f[10004], v[10004], w[10004];
04
int
max(
int
a,
int
b)
05
{
06
return
a > b? a : b;
07
}
08
int
main()
09
{
10
int
n, V, i, j;
11
while
(
scanf
(
"%d%d"
, &n, &V) != EOF)
12
{
13
memset
(f, 0,
sizeof
(f));
14
memset
(v, 0,
sizeof
(v));
15
memset
(w, 0,
sizeof
(w));
16
for
(i = 0; i < n; i++)
17
scanf
(
"%d%d"
, &v[i], &w[i]);
18
for
(i = 0; i < n; i++)
19
{
20
for
(j = V; j >= v[i]; j--)
21
{
22
f[j] = max(f[j], f[j - v[i]] + w[i]);
23
}
24
}
25
printf
(
"%d\n"
, f[V]);
26
}
27
return
0;
28
}
0 0
- 小P寻宝记——粗心的基友
- 小P寻宝记——粗心的基友
- 小P寻宝记——粗心的基友
- 小P寻宝记——粗心的基友
- 小P寻宝记——粗心的基友
- 小P寻宝记——粗心的基友
- 小P寻宝记——粗心的基友
- 小P寻宝记——粗心的基友
- 小P寻宝记—粗心的基友
- 动态规划之01背包—小P寻宝记——粗心的基友
- SDUT_2015寒假集训_背包_F-小P寻宝记——粗心的基友
- 小P寻宝记——粗心的基友 背包
- SDUTOJ 2825 小P寻宝记——粗心的基友 01背包
- SDUT 2825----小P寻宝记——粗心的基友(0-1背包)
- 小P寻宝记——粗心的基友 SDUT 2825
- 01背包--小P寻宝记——粗心的基友
- SDUTOJ 1381 小P寻宝记——粗心的基友 (01背包)
- 小P寻宝记——粗心的基友(sdut_2825)
- 运算符重载
- Ubuntu 14.04下编译WebRTC
- 统计0~65535之间互不相同整数的个数
- iOS 框架类关系图及iOS对象详解
- 安装gtk
- 小P寻宝记——粗心的基友
- RxJava和EventBus该用谁
- MAC finder 显示文件路径
- 某大牛的数位DP
- ABAP数据字典和数据表的读取
- Bootstrap内容提要
- jquery的$().each,$.each的区别
- spring-quartz普通任务与可传参任务
- Linux下chkconfig命令详解