动态规划6个题目总结比较

对前面几道题目做一下总结。

问题枚举多阶段限制条件目标值
0-1背包每种物品:放/不放每种物品一个阶段不能超过总重量w放完索引物品后,总重量最大
双11每种物品:买/不买每种物品一个阶段w<=总价格<3w放完索引物品后,总价格是大于w的最小值
矩阵最短路径长度每个位置移动的方向:向下/右每个位置一个阶段到达(n-1,n-1),最短路径长度
最长递增子序列每个元素是否在递增子序列中:加/不加以第0个元素结尾;
以第1个元素结尾

以第n-1个元素结尾
考察完数组所有元素,选择长度最长的
莱文斯坦编辑距离当前比较的两个字符不相同时候的处理方式:添加/删除/替换字符的位置:0,1,2…考察完数组所有字符,选择编辑距离最短的
硬币找零符合条件不同币值的硬币:第0种、第1种…支付1元、2元…w元支付w元,最少硬币数量
问题状态转移表维度状态转移表值状态转移方程答案
0-1背包(i,cw)
i:第i个物品
cw:当前总重量
true/false:能否达到那个重量state[n-1][j]=true,j最大
双11(i,presum)
i:第i个物品
cw:当前总价格
true/false:能否达到那个价格state[n-1][j]=true,j>=w,且最小
矩阵最短路径长度(i,j)
i:第i行
j:第j列
到达(i,j)的最短路径长度min_dist(i,j)=matrix[i][j]+min(min_dist(i-1,j-1),min_dist(i-1,j))min_dist(n-1,n-1)
最长递增子序列(i)
i:以第i个元素结尾
以第i个元素结尾的最长递增子序列长度max_lis(i)=max(max_lis(j))+1
j=0,1,2…i-1,a[i]>a[j]
max_lis(i)的最大值,i=0,1,2…n-1
莱文斯坦编辑距离(i,j) i:比较字符a[i]
j:比较字符b[j]
最少编辑次数a[i]=b[j],min_edit=min(min_edist(i-1,j-1),min_edist(i-1,j)+1,min_edist(i,j-1)+1)
a[i]!=b[j],min_edit=min(min_edist(i-1,j-1),min_edist(i-1,j),min_edist(i,j-1)+1)+1
min_edist(m-1,n-1)
m:a字符串的长度,n:b字符串的长度
硬币找零(x) x:已选择硬币总和最少硬币个数F(i)=min(F(x-cic_ici))+1
i=0,1,2,…n-1,x-cic_ici>=0
F(w)

根据表格回答以下问题。

1 目标状态与目标值是什么?
根据题目回答。
  考察完所有物品;放入物品重量最大。
  到达位置(n-1,n-1);最短路径长度。
  考察完最后一个元素;最长递增子序列长度。
  支付w元;最少应比数量。
  两个字符串按位置,字符比较完成;最少编辑次数。
  
2 多阶段决策问题,按照什么分阶段?
按照目标状态分阶段。
  考察完所有物品,最大重量。那就按照物品分阶段。
  到达(n-1,n-1)时的最短路径长度,那就按照所在位置分阶段。
  考察完数组最后一个元素后的最长递增子序列长度,那就按数组中每一个元素分阶段。
  考察完所有物品后总价格最低,那就按照物品分阶段。
  支付w元时的最少硬币数量,那就按照支付w-1、w-2…分阶段。
  考察完两个字符串所有字符之后的最小编辑次数,那就按照字符位置分阶段。

3 状态表的维度和值是什么?
状态表的维度一般就是分阶段的维度。
  按照物品分阶段,状态表维度是物品所在下标。
  按照矩阵位置分阶段,状态表维度就是矩阵位置的横纵坐标。
  按照支付多少元分阶段,状态表维度就是支付总额。
  按照字符位置分阶段,状态表维度就是字符所在位置的下标。
  特例:0-1背包问题,因为重量是限制条件,状态表维度是物品下标和重量。
状态表的值一般就是目标值。
  目标值是最少编辑次数,状态表的值就是最少编辑次数。
  目标值是硬币最少数量,状态表的值就是硬币最少数量。
  特例:0-1背包问题,因为重量是限制条件,状态表的值true/false表示能不能达到某个重量。

4 状态转移方程是按照什么列出的?
状态转移方程是按照业务条件列出的。
  按照前进方向
  按照硬币币值
  按照字符相同,不同时候的处理方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第26篇]描述NAF标量乘法算法

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 [1] Hankerson, Darrel, Scott Vanstone, and Alfred J. Menezes. “Guide to elliptic curve cryptography…

docker安装mysql5.6,安装redis3.2

安装mysql 拉取镜像 [rootlocalhost ~]# docker pull mysql:5.6 运行镜像 docker run -p 3306:3306 --name mysql -v /usr/local/mysql5.6/conf:/etc/mysql/conf.d -v /usr/local/mysql5.6/logs:/logs -v /usr/local/mysql5.6/data:/var/lib/mysql -e MYSQL_R…

第六十一期: 从7600万个5G连接中,我们发现了7种最有前景的5G物联网应用

近日&#xff0c;物联网市场调研机构IoT Analytics调研了44种不同的5G物联网用例&#xff0c;预计到2025年&#xff0c;这些用例将覆盖7600万个5G节点&#xff0c;本文重点介绍了其中7种最有市场前景的5G物联网用例。 作者&#xff1a;物联网智库 5G是第五代移动通信技术&…

动态规划——变形的杨辉三角形

我们现在对杨辉三角进行一些改造。每个位置的数字可以随意填写&#xff0c;经过某个数字只能到达下面一层相邻的两个数字。 假设你站在第一层&#xff0c;往下移动&#xff0c;我们把移动到最底层所经过的所有数字之和&#xff0c;定义为路径的长度。请你编程求出从最高层移动…

第六十期:玩了分布式这么久,你不会连Kafka都不清楚吧

Kafka 现在在企业和互联网项目中的应用越来越多了&#xff0c;本篇文章就从 Kafka 的基础开始带你一展 Kafka 的宏图。 作者&#xff1a;cxuan Kafka 现在在企业和互联网项目中的应用越来越多了&#xff0c;本篇文章就从 Kafka 的基础开始带你一展 Kafka 的宏图。 图片来自 Pe…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第29篇]什么是UF-CMA数字签名的定义?

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 第16篇博客给出了DSA&#xff0c;Schnoor和RSA-FDH签名方案的细节&#xff0c;但是签名方案是什么&#xff…

vue-cli 3.0

安装&#xff1a; npm i vue/cli -g 搭建项目&#xff1a; vue create vue-test 按需加载element-ui 1、npm i element-ui -S npm install babel-plugin-component -D 2、babel.config.js 文件中设置 module.exports { presets: [ vue/app, babel/env ], plugins: [ // elemen…

第六十二期:看完这篇还不了解Nginx,那我就哭了!

看完这篇还不了解Nginx&#xff0c;那我就哭了&#xff01; Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格&#xff0c;以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据&#xff0c;通过 …

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第30篇]大致简述密钥协商中的BR安全定义

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 在两方之间建密钥共享是一件密码学中古老的问题。就算只考虑定义也比标准加密困难的多。尽管古典的Diffie-H…

安防摄像头Onvif、RTSP、GB28181转web无插件直播卡顿分析

监控摄像头网络直播 越来越多人的开始讲普通安防摄像机接入网络流媒体服务器&#xff0c;进行网络直播。这方面的解决方案比较多&#xff0c;最近测试了一个比较轻巧的解决方案&#xff1a;LiveNVR。这个就是实现接入普通RTSP/Onvif的安防摄像机&#xff0c;转成RTMP和HLS流&am…

算法七——分治算法

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 MapReduce本质就是一个分值算法。 什么是分治算法 分治算法的核心是&#xff1a;分而治之。也就是将原问题分解为n个规模较小&#xff0c;并且结构与原问题相似的子…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第31篇]Game Hopping证明

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 关于安全证明, 目前主流的方法有安全归约证明 (由 single game 实现) 和 Game Hopping (由 game sequence 实…

第六十三期:放下你手里的代码,小心被抓!

放下你手里的代码&#xff0c;小心被抓。最近程序员圈子不乏这样的戏谑调侃。 作者&#xff1a;沈春泽、李加庆来源 放下你手里的代码&#xff0c;小心被抓。最近程序员圈子不乏这样的戏谑调侃。 图片来自 Pexels 原因是最近发生的多起涉及爬虫技术的公司被司法部门调查。近…

算法九——回溯算法

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 理解回溯 在我们的一生中&#xff0c;会遇到很多重要的岔路口。在岔路口上&#xff0c;每个选择都会影响我们今后的人生。有的人在每个岔路口都能做出最正确的选择&…

Python小数据池

一. id is 二. 代码块三. 小数据池四. 总结一&#xff0c;id&#xff0c;is&#xff0c; 在Python中&#xff0c;id是什么&#xff1f;id是内存地址&#xff0c;那就有人问了&#xff0c;什么是内存地址呢&#xff1f; 你只要创建一个数据&#xff08;对象&#xff09;那么都会…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第32篇]基于博弈的证明和基于模拟的证明

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 在基于博弈的安全定义中&#xff0c;安全是由博弈过程定义的。博弈围绕着一些通用的原始元素展开&#xff0…

第六十四期:聊聊原子变量、锁、内存屏障那点事

突然想聊聊这个话题&#xff0c;是因为知乎上的一个问题多次出现在了我的Timeline里&#xff1a;请问&#xff0c;多个线程可以读一个变量&#xff0c;只有一个线程可以对这个变量进行写&#xff0c;到底要不要加锁?可惜的是很多高票答案语焉不详&#xff0c;甚至有所错漏。 …

数据结构九——栈

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 1栈的定义 1.1 栈的定义 栈&#xff1a;后进者先出&#xff0c;先进着后出。就像一碟盘子&#xff0c;如果拿走一个盘子&#xff0c;拿走的一定是最后放上去的那个…

java 传入多个参数时报Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1,... 解决方案...

Select("SELECT id FROM ae_post ORDER BY id DESC LIMIT #{page},#{size}")List<Post> getAllForPage(Param("page") int page, Param("size")int size); dao层写入&#xff0c;解决方法如上 注&#xff1a;多参数需要添加 Param("…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第33篇]Bellcore攻击是如何攻击使用CRT的RSA的?

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 转载链接:https://www.cnblogs.com/zhuowangy2k/p/12245604.html