惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

www.infosecurity-magazine.com
www.infosecurity-magazine.com
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
H
Help Net Security
有赞技术团队
有赞技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
IT之家
IT之家
宝玉的分享
宝玉的分享
月光博客
月光博客
D
Docker
MyScale Blog
MyScale Blog
G
Google Developers Blog
MongoDB | Blog
MongoDB | Blog
Microsoft Security Blog
Microsoft Security Blog
Cyberwarzone
Cyberwarzone
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Last Watchdog
The Last Watchdog
Recorded Future
Recorded Future
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Schneier on Security
L
LINUX DO - 热门话题
W
WeLiveSecurity
N
Netflix TechBlog - Medium
C
Cyber Attacks, Cyber Crime and Cyber Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google Online Security Blog
Google Online Security Blog
阮一峰的网络日志
阮一峰的网络日志
H
Hacker News: Front Page
L
LINUX DO - 最新话题
雷峰网
雷峰网
L
LangChain Blog
V
V2EX
Martin Fowler
Martin Fowler
The Register - Security
The Register - Security
T
The Exploit Database - CXSecurity.com
Schneier on Security
Schneier on Security
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
H
Heimdal Security Blog
T
Threat Research - Cisco Blogs
Google DeepMind News
Google DeepMind News
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Securelist
T
Tailwind CSS Blog
AWS News Blog
AWS News Blog
人人都是产品经理
人人都是产品经理
Security Latest
Security Latest

静静的小窝

在VPS服务器上面安装OpenClaw并使用OpenRouter的免费API的一些“坑” | Some "pits" about installing OpenClaw and using OpenRouter's free API on a VPS server 五年了啊 | Five years 一个奇怪的估算 | A strange estimation 虚拟直播之路2 | Living as a V 2 虚拟直播之路 | Living as a V AI 写代码?| AI coding? X静评1.1:谷歌,快成了?| XComment1.1 Is Google's Success Coming? X静评0.3:要精致吗?| XComment0.3 Be Dainty? X静评0.2:座位是购买的服务还是赠送的服务?| Xcomment0.2 A Bought Seat or A Gift Seat X静评0.1:一纸限令,毁掉一个政策?| XComment0.1 One Paper, One Dead Policy? hadoop 3.2.2 Cluster Setup | hadoop 3.2.2 的集群启动 894A题解|894A Solution VY223 Journal Smith’s death 第一次翻墙|first cross wall [题解]异或三角形|2021蓝桥杯国赛|xor triangle 2021年蓝桥杯|LanQiaoCup2021 参赛|Attending Contest 新旧|New and Old 去毛泽东旧居| visit MAO ZEDONG old house 拜登会团结美国吗|Will Biden unite the USA? 出生|Birth 冒泡排序与排序的稳定性|Bubble Sort and Stability 看完哔哩哔哩上的NASA的火星车直播后的一些话|My words after watching NASA's launch of the Mars 2020 perseverance rover live on Bilibili 选择排序|Selection Sort 饭圈与特郎普|fandom and Trump 不盲目|No Blindness 从3到n——一道数学题|a math problem from 3 to N 公权与私权|public and private rights 我在第几层|Where I Am 中国不是欧洲的救世主|China Will Not Save Europe 美国之行|A Travel To The USA 一道数学题|A Math Problem 做一个真正的关注者|Pay true attention 云笔记|inote 闵行高三一模作文|Chinese Composition of First Minghang Mock Exam 一个诡异的脑洞|A strange idea 科学技术的发展离不开艺术 读后感——竞选州长 影评英伦对决——成龙的又一力作 影评2001:太空漫游——最好的科幻电影 关于航空航天探测工程的一点思考 科学营总结 2019科学营Day4 2019科学营Day3 2019科学营Day2 2019科学营Day1 研学中的思考 在研学中学习 北京研学Day1 洛谷P1000题解 探访商飞 读书笔记_2019年寒假 OK!
背包问题|knapsack problem
静静 · 2020-09-07 · via 静静的小窝

视频版: https://www.bilibili.com/video/BV1pa4y1E7CC/

文字版:
在商店里面对着琳琅满目的商品,
再看看自己空瘪的钱包,
这么多自己想要的,
该怎么选择啊?
如何破除选择困难症?

大家好,
欢迎来到静谈算法,
我是静静。
不妨假设有5个想购买的物品,
分别是面包、快乐水、薯片、奶茶和月饼,有着不同的价格和满意值,
如何在10元的预算中获得最大的满意值呢?
为了方便考虑,我们假设最多购买一件
显然,这些东西被摆放在不同的货架上,不会被同时看见,选择是一步一步做的.
对于每一件商品,都有买或者不买2种可能的情况,
如果购买,那么满意值等于之前购买的商品的满意值加当前物品的满意值,
如果不买,那么满意值就是之前购买的商品的满意值。
同时,买与不买也影响着花费的钱。
不妨考虑一下这个例子。
对于第一个商品面包,花费7元及以上就可以购买,
同时获得9满意值(小于7元就算0满意值),
然后是快乐水,如果不买快乐水,那么满意值就等于上一行的值,
如果购买,满意值就是上一行的左侧2格的满意值加2,
以这一格为例,不购买就是花费7元买一个面包,满意值为9,
购买就是花费5元买面包(买不起为0满意),花2元买快乐水,
满意值为2。
比较9与2,取较大的值为9。
之后是薯片,同样的,比较花相同的钱的情况下,
买与不买薯片的2种情况中哪种满意值大。
接着是奶茶,最后是月饼。
这样的操作后,最右下角的就是可能的最大满意值。
为了便于书写,我们不妨用p[i]表示第i种物品的价格,
用v[i]表示第i种物品的满意值,
用dp[i][j]表示在第1i的物品中花费j元的最大可能满意值。
此时我们就可以写出公式为
买:dp[i][j]=v[i]+dp[i-1][j-p[i]]
即为花费p[i]元购买第i个商品的满意值与花费j-p[i]元在前i-1个商品中可能的最大满意值之和。
不买:dp[i][j]=dp[i-1][j]
即为花费j元在前i-1个商品中可能的最大满意值。
比较买与不买的2种情况,取较大值,即为第1
i的物品中花费j元的最大可能满意值。
不难发现,这种购买行为满足3个特点
1.最优子结构,即购买5件商品达到最大满意值时,
其中的任意件的购买总是也达到了最大值,可以独立求出。
2.无后效性,即前面购买不管怎样,
花费j元在前i个商品中的购买的最大满意值都不会变,
不会影响第i+1个商品的购买与否。
3.子问题有重叠性,即每一个物品的购买是独立的,不会干扰。
满足这三个特点的问题可以用动态规划(Dynamic Programming,DP)来解决
先找到问题的子问题的状态,再求出这些状态之间的转移方程,
再从最小的子问题开始着手解决问题。
在这里每种商品都只有买一件或不买2种状态,如果可以买任意件,又该如何呢?
想知道的话不要忘记点赞加关注,我是静静,我们下期再见。