↓ 跳过正文
  1. Posts/

(dp专题006)hdu 2602 Bone Collector(01背包)

·296 字·1 分钟

题目链接

题意:容量为V的背包,n个骨头,给出价值和体积,问最多能装多少价值的背包。

思路:01背包裸体。

代码实现
 1/* ***********************************************
 2Author :111qqz
 3Created Time :2016年11月16日 星期三 15时14分36秒
 4File Name :code/hdu/2602.cpp
 5************************************************ */
 6
 7#include <cstdio>
 8#include <cstring>
 9#include <iostream>
10#include <algorithm>
11#include <vector>
12#include <queue>
13#include <set>
14#include <map>
15#include <string>
16#include <cmath>
17#include <cstdlib>
18#include <ctime>
19#define fst first
20#define sec second
21#define lson l,m,rt<<1
22#define rson m+1,r,rt<<1|1
23#define ms(a,x) memset(a,x,sizeof(a))
24typedef long long LL;
25#define pi pair < int ,int >
26#define MP make_pair
27
28using namespace std;
29const double eps = 1E-8;
30const int dx4[4]={1,0,0,-1};
31const int dy4[4]={0,-1,1,0};
32const int inf = 0x3f3f3f3f;
33const int N=1E3+7;
34int dp[N],value[N],cost[N];
35int n,V;
36void solve(int v,int c)
37{
38    for ( int i = V; i >= c; i --)
39	dp[i] = max(dp[i],dp[i-c]+v);
40}
41int main()
42{
43	#ifndef  ONLINE_JUDGE
44	freopen("code/in.txt","r",stdin);
45  #endif
46	int T;
47	cin>>T;
48	while (T--)
49	{
50	    scanf("%d%d",&n,&V);
51	    ms(dp,0);
52	    for ( int i = 1 ;i <= n ; i++) scanf("%d",&value[i]);
53	    for ( int i = 1;  i <= n ; i++) scanf("%d",&cost[i]);
54	    for ( int i = 1 ; i <= n ; i++) solve(value[i],cost[i]);
55	    int ans = 0 ;
56
57	    for ( int i = 0 ; i <= V ; i++) ans = max(ans,dp[i]);
58	    printf("%d\n",ans);
59	}
60
61  #ifndef ONLINE_JUDGE
62  fclose(stdin);
63  #endif
64    return 0;
65}

相关文章

[dp专题005]hdu 1864最大报销额(01背包,垃圾题)

·467 字·1 分钟
hdu1864题目链接 题意:中文题目,不多说了。 思路:正解是01背包,呵呵呵。 出题人是傻逼吗? 不给数据范围? 以及,正解的01背包基于所有的发票额度的只有2位小数。这是让人猜? 本来看到这题这么恶心时不打算写的…

(dp专题004)hdu 2955Robberies(01背包变形)

·552 字·2 分钟
题目链接 题意: 给出n个银行 ,以及抢劫每个银行可以得到的价值和被抓的概率,不同银行之间被抓的概率是相互独立的,现在给出安全概率p,只有当概率从小于安全概率时才是安全的,问最多能抢劫多少价值。

BZOJ 1649: [Usaco2006 Dec]Cow Roller Coaster (dp,类似01背包)

·1109 字·3 分钟
1649: [Usaco2006 Dec]Cow Roller Coaster # Time Limit: 5 Sec Memory Limit: 64 MB Submit: 504 Solved: 265 [Submit][Status][Discuss] Description # The cows are building a roller coaster! They want your help to design as fun a roller coaster as possible, while keeping to the budget. The roller coaster will be built on a long linear stretch of land of length L (1 <= L <= 1,000). The roller coaster comprises a collection of some of the N (1 <= N <= 10,000) different interchangable components. Each component i has a fixed length Wi (1 <= Wi <= L). Due to varying terrain, each component i can be only built starting at location Xi (0 <= Xi <= L-Wi). The cows want to string together various roller coaster components starting at 0 and ending at L so that the end of each component (except the last) is the start of the next component. Each component i has a “fun rating” Fi (1 <= Fi <= 1,000,000) and a cost Ci (1 <= Ci <= 1000). The total fun of the roller coster is the sum of the fun from each component used; the total cost is likewise the sum of the costs of each component used. The cows’ total budget is B (1 <= B <= 1000). Help the cows determine the most fun roller coaster that they can build with their budget.