1625: [Usaco2007 Dec]宝石手镯

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 1349  Solved: 954
[Submit][Status][Discuss]

Description

贝茜在珠宝店闲逛时,买到了一个中意的手镯。很自然地,她想从她收集的
N(1 <= N <= 3,402)块宝石中选出最好的那些镶在手镯上。对于第i块宝石,它的重量为W_i(1 <= W_i
<= 400),并且贝茜知道它在镶上手镯后能为自己增加的魅力值D_i(1 <= D_i <=
100)。由于贝茜只能忍受重量不超过M(1 <= M <= 12,880)的手镯,她可能无法把所有喜欢的宝石都镶上。
于是贝茜找到了你,告诉了你她所有宝石的属性以及她能忍受的重量,希望你能帮她计算一下,按照最合理的方案镶嵌宝石的话,她的魅力值最多能增加多少。

Input

* 第1行: 2个用空格隔开的整数:N 和 M

* 第2..N+1行: 第i+1行为2个用空格隔开的整数:W_i、D_i,分别为第i块宝石 的重量与能为贝茜增加的魅力值

Output

* 第1行: 输出1个整数,表示按照镶嵌要求,贝茜最多能增加的魅力值

Sample Input

4 6
1 4
2 6
3 12
2 7

输入说明:

贝茜收集了4块宝石,她能忍受重量最大为6的手镯。

Sample Output

23

输出说明:

贝茜把除了第二块宝石的其余所有宝石都镶上手镯,这样她能增加
4+12+7=23的魅力值,并且所有宝石的重量为1+2+3 <= 6,同样符合要求。

HINT

Source

Silver

题解

最裸的01背包dp板子(我居然还wa了一次,我太弱啦!

#pragma GCC optimize("O2")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<limits.h>
#include<ctime>
#define N 100001
typedef long long ll;
const int inf=999999999;
const int maxn=2017;
using namespace std;
inline int read()
{
    int f=1,x=0;char ch=getchar();
    while(ch>'9'|ch<'0')
    {
        if(ch=='-')
        f=-1;
        ch=getchar();
    }
    while(ch<='9'&&ch>='0')
    {
        x=(x<<3)+(x<<1)+ch-'0';
        ch=getchar();
    }
    return f*x;
}
int w[N],v[N],f[maxn];
int main()
{
    int n=read(),m=read();
    for(int i=1;i<=n;i++)
    {
        w[i]=read(),v[i]=read();
    }f[0]=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=m;j>=w[i];j--)
        f[j]=max(f[j-w[i]]+v[i],f[j]);
    }
    cout<<f[m];
}

最新文章

  1. java连接mysql步骤
  2. 原生JS默认设置默认值的写法
  3. 分解成3NF的保持函数依赖的分解算法:
  4. hdu 1166(树状数组 或 线段树)
  5. (原创)speex与wav格式音频文件的互相转换(二)
  6. Angular2学习
  7. tttt
  8. android 项目中log信息的正确处理
  9. XAMPP重置MySQL密码
  10. c/c++ 网络编程 UDP up/down 网卡
  11. 【English】20190415
  12. opencart3调用三级菜单level 3 sub categories
  13. 【Java】 剑指offer(32) 从上往下打印二叉树
  14. 禁用win7更新
  15. 好文推荐:转载一篇别人kaggle的经验分享
  16. 初学nodejs之安装Express中遇到的问题: error: option `-v, --view &lt;engine&gt;&#39; argument missing
  17. 让 linux centos 文件夹地址栏 位置栏显示出来的方法
  18. Centos7安装TensorFlow
  19. contiki bsp
  20. Sprite与屏幕之间的关系

热门文章

  1. 目标检测算法之R-CNN算法详解
  2. 从零开始学C#——不再更新,直接进入高阶教程
  3. 一个kubeadm.config文件--定义了token,扩展了默认端口,外部ETCD集群,自定义docker仓库,基于ipvs的kubeproxy
  4. webpack学习笔记--其它配置项
  5. springboot调用http方式
  6. h5网页在微信里打开 右上角分享到微信好友或者朋友圈
  7. JMeter非GUI模式下日志介绍
  8. Jnekins+Gitlab代码提交全程配置
  9. 基于springboot通过自定义注解和AOP实现权限验证
  10. nginx-fastcgi 反向代理