POJ 3624 Charm Bracelet 0-1背包
传送门: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背包相关推荐
- POJ 3624 Charm Bracelet
DP 一直是心中痛,不多说了,这个暑假就坑在这上了. 这暑假第一道DP题,01背包问题. 题意是说物品有 重量和价值 ,但你能承受的重量有限,问你能带的最大价值. 这题数组开大点,尽管不知道有啥坑点, ...
- 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]) ...
- POJ 3624 Charm Bracelet(01背包 基础)
题意: n个装饰品 容量m的背包 每个装饰品 重wi 价值 di 求能装的最大价值 思路:基础01背包 #include<stdio.h> #include<string.h> ...
- POJ - 3624 Charm Bracelet
题目链接:http://poj.org/problem?id=3624 题意:一共给出n种手镯,每个手镯有着各自的重量以及魅力值,在m重量下能得到的最大魅力值是多少. 分析:标准的01背包.状态转移如 ...
- 【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 ...
- POJ-3426-0-1背包Charm Bracelet
Charm Bracelet Description Bessie has gone to the mall's jewelry store and spies a charm bracelet. O ...
- 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 ...
- 洛谷——P2871 [USACO07DEC]手链Charm Bracelet
https://www.luogu.org/problem/show?pid=2871 题目描述 Bessie has gone to the mall's jewelry store and spi ...
- Charm Bracelet(POJ-3624)
Problem Description Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of cours ...
最新文章
- 2、Reactive Extensions for .NET(译)
- mysql导入frm文件_MySQL备份文件.ibd、.frm、.MYD、.MYI的恢复教程
- 数学之美笔记(二十)
- AndroidStudio中打开新项目提示:This version of the Android Support plugin for IntelliJ IDEA (or Android Studi
- qPCR实验疑难杂问解答
- MySQL的explain简书_MySQL Explain
- p1605迷宫(DFS应该注意的问题)
- 机器学习(二十八)——Monte-Carlo
- mysql 优化方法有哪些?
- 新年中国节必备背景素材|传统纹样,这便是中国之美!
- mysql 5.1.48-log_mysql5.1+syslog8.3+loganalyzer配置过程
- python函数分为哪几种_python函数有哪几种
- c语言结构体数组怎么初始化,c语言结构体数组初始化
- WIN7,WIN10,WIN11怎么查看电脑操作系统位数
- LNMP详解(九)——Nginx虚拟IP实战
- 没有对象,你凭什么成为百万富翁
- cadence软件用于高分屏笔记本时候显示字体模糊问题解决
- 2016年计算机b级考试试题,2016年全国计算机等级考试模拟试题一级B.doc
- Matlab sim函数的用法
- 一条SQL查询语句的执行过程,一张图说清SQL查询语句执行过程