zoukankan      html  css  js  c++  java
  • COGS 144. [USACO Dec07] 魅力手镯【01背包复习】

    144. [USACO Dec07] 魅力手镯

    ★   输入文件:charm.in   输出文件:charm.out   简单对比
    时间限制:1 s   内存限制:8 MB

    译 by CmYkRgB123

    描述

    贝茜去了大卖场的珠宝商店,发现一个魅力手镯,她想把最好的宝石镶嵌在这条手镯上。她有 N (1 ≤ N ≤ 3,402) 种可用宝石,每种宝石 i 都有其重量 Wi (1 ≤ Wi ≤ 400),与价值 Di (1 ≤ Di ≤ 100),每种宝石最多只能用一次。贝茜只能把总重量不超过 M (1 ≤ M ≤ 12,880)的宝石镶嵌到手镯上。

    给你每个宝石的重量和价值,请你算出贝茜最多能把总价值为多大的宝石镶嵌到手镯上。

    输入

    • 第 1 行: 两个整数 N , M
    • 第 2..N+1 行: 第 i+1 行 有两个整数, Wi 和 Di

    输出

    • 第 1 行: 一个整数,为镶嵌的宝石的总价值。

    样例输入

    4 6
    1 4
    2 6
    3 12
    2 7
    

    样例输出

    23
    

     

    分析:01背包纯裸题,复习一下,又忘记了!
    下面给出AC代码:
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int w[15000],d[15000],dp[15000];
     4 int main()
     5 {
     6     int n,m;
     7     freopen("charm.in","r",stdin);
     8     freopen("charm.out","w",stdout);
     9     scanf("%d%d",&n,&m);
    10     for(int i=1;i<=n;i++)
    11         scanf("%d%d",&w[i],&d[i]);
    12     for(int i=1;i<=n;i++)
    13         for(int j=m;j>=w[i];j--)
    14             dp[j]=max(dp[j],dp[j-w[i]]+d[i]);
    15     cout<<dp[m]<<endl;
    16     return 0;
    17 }
  • 相关阅读:
    问题账户需求分析
    2017年秋季个人阅读计划
    阅读笔记01
    个人总结
    第二阶段站立会议07
    第二阶段站立会议06
    第二阶段站立会议05
    第二阶段站立会议04
    第二阶段站立会议03
    学习进度条(第十五周)
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/7202220.html
Copyright © 2011-2022 走看看