• POJ 3624 Charm Bracelet(01背包裸题)


    Charm Bracelet

    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 38909   Accepted: 16862

    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

    4 6
    1 4
    2 6
    3 12
    2 7

    Sample Output

    23

    Source

    题目链接:http://poj.org/problem?id=3624
    分析:01背包裸题,顺带敲了一遍,做个复习吧,怕忘了!详解请参看我的博客http://www.cnblogs.com/ECJTUACM-873284962/p/6815610.html,里面有对01背包的完全介绍以及用法!
    下面给出AC代码:
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <stdio.h>
     4 using namespace std;
     5 int w[35000],d[35000],dp[35000];
     6 int main()
     7 {
     8     int n,m;
     9     while(scanf("%d%d",&n,&m)!=EOF)
    10     {
    11         for(int i=1;i<=n;i++)
    12             scanf("%d%d",&w[i],&d[i]);
    13         for(int i=1;i<=n;i++)
    14         {
    15             for(int j=m;j>=w[i];j--)
    16             {
    17                 dp[j]=max(dp[j],dp[j-w[i]]+d[i]);
    18             }
    19         }
    20         printf("%d
    ",dp[m]);
    21     }
    22     return 0;
    23 }
  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/6828362.html
Copyright © 2020-2023  润新知