POJ 3624 Charm Bracelet 01背包
2014-05-27 22:31
573 查看
Description
Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from the
N (1 ≤ N ≤ 3,402) available charms. Each charm i in the supplied list has a weight
Wi (1 ≤ Wi ≤ 400), a 'desirability' factor
Di (1 ≤ Di ≤ 100), and can be used at most once. Bessie can only support a charm bracelet whose weight is no more than
M (1 ≤ M ≤ 12,880).
Given that weight limit as a constraint and a list of the charms with their weights and desirability rating, deduce the maximum possible sum of ratings.
Input
* Line 1: Two space-separated integers: N and M
* Lines 2..N+1: Line i+1 describes charm i with two space-separated integers:
Wi and Di
Output
* Line 1: A single integer that is the greatest sum of charm desirabilities that can be achieved given the weight constraints
Sample Input
Sample Output
Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from the
N (1 ≤ N ≤ 3,402) available charms. Each charm i in the supplied list has a weight
Wi (1 ≤ Wi ≤ 400), a 'desirability' factor
Di (1 ≤ Di ≤ 100), and can be used at most once. Bessie can only support a charm bracelet whose weight is no more than
M (1 ≤ M ≤ 12,880).
Given that weight limit as a constraint and a list of the charms with their weights and desirability rating, deduce the maximum possible sum of ratings.
Input
* Line 1: Two space-separated integers: N and M
* Lines 2..N+1: Line i+1 describes charm i with two space-separated integers:
Wi and Di
Output
* Line 1: A single integer that is the greatest sum of charm desirabilities that can be achieved given the weight constraints
Sample Input
4 6 1 4 2 6 3 12 2 7
Sample Output
23
#include<iostream> #include <cstring> #include<algorithm> #include <cstdio> #include <map> #include <string> using namespace std; const int maxn=12880; int f[maxn],w[maxn],d[maxn]; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) { scanf("%d%d",&w[i],&d[i]); } memset(f,0,sizeof(f)); for(int i=1;i<=n;i++) { for(int j=m;j>=w[i];j--) { f[j]=max(f[j],f[j-w[i]]+d[i]); } } printf("%d\n",f[m]); } return 0; }
相关文章推荐
- poj 3624 Charm Bracelet 【01背包】+poj2524【并查集】
- POJ 3624 Charm Bracelet (基础01背包)
- POJ3624 - Charm Bracelet(01背包)
- poj 3624 Charm Bracelet 01背包
- poj 3624 Charm Bracelet (01背包模板)
- POJ 3624 Charm Bracelet 01背包问题
- POJ 3624 Charm Bracelet(01背包)
- POJ 3624 Charm Bracelet【01背包】
- poj3624 Charm Bracelet(DP,01背包)
- POJ 3624 Charm Bracelet - 01背包-详解
- POJ 3624 Charm Bracelet 动态规划(01背包问题)
- POJ 题目3624 Charm Bracelet(动态规划 01背包)
- POJ Problem 3624 Charm Bracelet 【01背包】
- POJ 3624 Charm Bracelet【01背包入门题】
- POJ 3624 Charm Bracelet(01背包 基础)
- POJ 3624 Charm Bracelet (01背包)
- POJ - 3624 Charm Bracelet (01背包)
- poj 3624 Charm Bracelet(01背包)
- POJ 3624 Charm Bracelet (01背包)
- POJ 3624 Charm Bracelet(01背包问题)