POJ - 3624 Charm Bracelet
题目链接:http://poj.org/problem?id=3624
题意:一共给出n种手镯,每个手镯有着各自的重量以及魅力值,在m重量下能得到的最大魅力值是多少。
分析:标准的01背包。状态转移如此:
dp[i][j]表示前i个手镯在重量为j的背包容量下能达到的最大魅力值。w[i]是第i个手镯的重量,d[i]是第i个手镯的魅力值。
如果某个超过背包重量,则一定不放入背包。问题则为剩余i-1个手镯装入重量的容量为j的背包得到的最大魅力值。
否则该手镯放入背包。问题则为剩余i-1个手镯装入重量的容量为j-w[i]的背包能到的的最大价值加上手镯i的价值d[i]。
if (w[i]>j) dp[i][j] = dp[i-1][j]
else dp[i][j] = max(dp[i-1][j-w[i]]+d[i],dp[i-1][j])
第一次用二维写的,,,好吧,貌似只能用一维这题
手工模拟一下发现dp[i,j]只跟之前的某几个值有关,再之前计算的结果就都没用了...
所以我们就可以用一个数组来重复使用了,不过要倒序,保证无后效性...
Sample Input4 6 1 4 2 6 3 12 2 7 Sample Output23
AC代码:
1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<ctype.h> 5 #include<stdlib.h> 6 #include <iostream> 7 #include<algorithm> 8 #include<queue> 9 10 using namespace std; 11 12 #define N 13000 13 ///12880和3420你选哪个? 14 ///就不告诉你我之前写的是小的,不然也不会把二维的写出来啊,唉 15 int w[N],d[N],dp[N]; 16 17 int main() 18 { 19 int n,k,i,j; 20 21 while(scanf("%d%d", &n,&k) != EOF) 22 { 23 memset(dp,0,sizeof(dp));///清零清零 24 for(i=0;i<n;i++) 25 scanf("%d %d", &w[i], &d[i]); 26 27 for(i=0;i<n;i++) 28 for(j=k;j>=w[i];j--) 29 dp[j]=max(dp[j], dp[j-w[i]]+d[i]); 30 31 printf("%d\n", dp[k]); 32 } 33 return 0; 34 }
转载于:https://www.cnblogs.com/weiyuan/p/5735675.html
POJ - 3624 Charm Bracelet相关推荐
- POJ 3624 Charm Bracelet 0-1背包
传送门:http://poj.org/problem?id=3624 题目大意:XXX去珠宝店,她需要N件首饰,能带的首饰总重量不超过M,要求不超过M的情况下,使首饰的魔力值(D)最大. 0-1背包入 ...
- 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
DP 一直是心中痛,不多说了,这个暑假就坑在这上了. 这暑假第一道DP题,01背包问题. 题意是说物品有 重量和价值 ,但你能承受的重量有限,问你能带的最大价值. 这题数组开大点,尽管不知道有啥坑点, ...
- POJ 3624 Charm Bracelet(01背包 基础)
题意: n个装饰品 容量m的背包 每个装饰品 重wi 价值 di 求能装的最大价值 思路:基础01背包 #include<stdio.h> #include<string.h> ...
- 【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 2888 Magic Bracelet)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 前置知识:小学生都能看懂的群论从入门到升天教程 <群论全家桶> 一道简单的题目 Probl ...
- 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 ...
- Charm Bracelet(0-1)
Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fil ...
- Charm Bracelet
Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fil ...
最新文章
- c#调用Discuz的UCenter 1.5的API及示例。
- python定时关闭进程_Python子进程,定时延迟后终止进程
- 【Spring学习】spring提供的三种定时任务
- 如何上传本地图片到PictureBox控件
- Silverlight 5 Beta新特性[4]文本缩进控制
- UNIX/Linux 系统管理技术手册阅读(二)
- 面试官系统精讲Java源码及大厂真题 - 32 ReentrantLock 源码解析
- Promise 让异步更优
- nginx负载均衡配置-windows
- mysql 恢复空密码_mysql 找回密码
- 己椒苈黄汤治水肿案(联想的风)
- oracle excel vba6,vba6.dll下载
- MobaXterm连接Linux教程
- 数据结构与计算机网络参考书,2019计算机考研:数据结构参考书及复习重点
- 向日葵远程控制工具安装
- sql server 2005 修改表的模式 schema 为dbo
- 【26天高效学完Java编程】Day03:Java中的运算符与流程控制语句的基本概念与实操
- Android支付接入(一):支付宝
- 未对文件 C:\Users\Administrator\Documents\WindowsPowerShell\profile.ps1 进行数字签名。无法在当前系统上运行该脚本。
- 角雷达进入“高速增长期”,国产供应商迎来“突围”时间窗口