传送门:http://poj.org/problem?id=3624

题目大意:XXX去珠宝店,她需要N件首饰,能带的首饰总重量不超过M,要求不超过M的情况下,使首饰的魔力值(D)最大。

0-1背包入门题。

可构建状态转移方程:

dp [ i ] [ v ]= max ( dp[ i-1 ] [ v ], dp[ i-1 ][ v- W[ i ] ]+d[ i ] ] )

但是这样空间太大,可以用滚动数组解决。

      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]);}}

为什么这样做是正确的呢?f数组是从上到下,右到左计算的,计算f ( i, j)之前, f( j )保存的就是 f(i-1 ,j)的值,f ( j-w )就是 f(i-1 ,j-w)的值,所以f[j]=max ( f[j] , f[j-w[i]]+d[i]); 就把

f(i-1 ,j-w[i]) +d[i] 和 f(i-1 ,j)中大的保存起来。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=12880+10;
int f[MAXN],w[MAXN],d[MAXN];
int main()
{int N,M;while(~scanf("%d%d",&N,&M)){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]);}
}

当然也可以边输入边处理:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=12880+10;
int f[MAXN],w,d;
int main()
{int N,M;while(~scanf("%d%d",&N,&M)){memset(f,0,sizeof(f));       for(int i=1;i<=N;i++){scanf("%d%d",&w,&d);for(int j=M;j>=w;j--){f[j]=max ( f[j] , f[j-w]+d );}}printf("%d\n",f[M]);}
}

转载于:https://www.cnblogs.com/murmured/p/5004255.html

POJ 3624 Charm Bracelet 0-1背包相关推荐

  1. POJ 3624 Charm Bracelet

    DP 一直是心中痛,不多说了,这个暑假就坑在这上了. 这暑假第一道DP题,01背包问题. 题意是说物品有 重量和价值 ,但你能承受的重量有限,问你能带的最大价值. 这题数组开大点,尽管不知道有啥坑点, ...

  2. poj 3624 Charm Bracelet (01背包)

    题目链接:http://poj.org/problem?id=3624 //典型01背包问题 //状态转移方程dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+d[i]) ...

  3. POJ 3624 Charm Bracelet(01背包 基础)

    题意: n个装饰品 容量m的背包 每个装饰品 重wi 价值 di 求能装的最大价值 思路:基础01背包 #include<stdio.h> #include<string.h> ...

  4. POJ - 3624 Charm Bracelet

    题目链接:http://poj.org/problem?id=3624 题意:一共给出n种手镯,每个手镯有着各自的重量以及魅力值,在m重量下能得到的最大魅力值是多少. 分析:标准的01背包.状态转移如 ...

  5. 【POJ - 3624 】Charm Bracelet (dp,0-1背包裸题)

    题干: Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to ...

  6. POJ-3426-0-1背包Charm Bracelet

    Charm Bracelet Description Bessie has gone to the mall's jewelry store and spies a charm bracelet. O ...

  7. AC日记——[USACO07DEC]手链Charm Bracelet 洛谷 P2871

    题目描述 Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like t ...

  8. 洛谷——P2871 [USACO07DEC]手链Charm Bracelet

    https://www.luogu.org/problem/show?pid=2871 题目描述 Bessie has gone to the mall's jewelry store and spi ...

  9. Charm Bracelet(POJ-3624)

    Problem Description Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of cours ...

最新文章

  1. 2、Reactive Extensions for .NET(译)
  2. mysql导入frm文件_MySQL备份文件.ibd、.frm、.MYD、.MYI的恢复教程
  3. 数学之美笔记(二十)
  4. AndroidStudio中打开新项目提示:This version of the Android Support plugin for IntelliJ IDEA (or Android Studi
  5. qPCR实验疑难杂问解答
  6. MySQL的explain简书_MySQL Explain
  7. p1605迷宫(DFS应该注意的问题)
  8. 机器学习(二十八)——Monte-Carlo
  9. mysql 优化方法有哪些?
  10. 新年中国节必备背景素材|传统纹样,这便是中国之美!
  11. mysql 5.1.48-log_mysql5.1+syslog8.3+loganalyzer配置过程
  12. python函数分为哪几种_python函数有哪几种
  13. c语言结构体数组怎么初始化,c语言结构体数组初始化
  14. WIN7,WIN10,WIN11怎么查看电脑操作系统位数
  15. LNMP详解(九)——Nginx虚拟IP实战
  16. 没有对象,你凭什么成为百万富翁
  17. cadence软件用于高分屏笔记本时候显示字体模糊问题解决
  18. 2016年计算机b级考试试题,2016年全国计算机等级考试模拟试题一级B.doc
  19. Matlab sim函数的用法
  20. 一条SQL查询语句的执行过程,一张图说清SQL查询语句执行过程

热门文章

  1. java基础—IO类——LineNumberReader 的使用
  2. winForm入门学习
  3. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 网格系统实例:响应式的列重置
  4. c# 之抽象工厂模式
  5. 20个优秀的 CSS 网格系统(CSS Grid Systems)推荐
  6. 《让僵冷的翅膀飞起来》系列之五——从容自若的CTO
  7. 安装 Tensorflow
  8. k层交叉检验(k-flod cross-validation)
  9. Opencv ORC——文字定位与切割
  10. niagara mysql_Niagara AX连接MySQL数据库