首页 > 其他分享 >线性DP

线性DP

时间:2023-12-21 12:56:23浏览次数:19  
标签:无后效 状态 子结构 DP 线性 最优 dp

线性DP

例题:POJ2279

思考:

考虑 dp_{i,j,k} 表示第 i 行,第 j 列,安排 k 去站的方案数。

错误原因:

安排 k 去站但是可能会造成重复选择 k 。

正解:

考虑 dp_{a1,a2,a3,a4,a5} 表示各排从左边起分别站了 a1,a2,a3,a4,a5 个人时,合影方案数。

疑惑:

Q1.为什么不用考虑某个位置究竟站的是谁?

Q2.怎样确定这个问题是无后效性的?

Q3.怎样确定这个问题具有最优子结构

自我解答:

A1.题目要求每一列单调并且每一排单调,对于第一个位置,也就是最高的肯定站在第一个位置,但是对于第二高的就有两个选择 (如果在第二排可以站人的情况下) ,第二个人的站位也会影响之后的第三高的人的站位。其实在正解的 dp 状态设置上面,是有考虑到某个位置究竟站的是谁的,只是题目在于求方案数,而不是具体的方案情况。因此在实际的 dp 的含义上面是并没有考虑到某个位置究竟站的是谁,但在 dp 的状态转移过程中其实是有考虑到某个位置究竟站的是谁的。

A2.其实主要感觉和题目的本身有关系?因为在题目本身的操作中,其实隐藏的操作过程是选一个人站在某个位置上面对于这个操作仅有的操作来说,是无后效性的,因此这个问题无后效性

A3.最优子结构说的是下一阶段的最优解能够由前面各个阶段的最优解求解,考虑到当前的站位方案数其实与下一站位方案数息息相关因此这个问题具有最优子结构

小结:

感觉这个线性DP和我之前所做的线性DP都不同,首先是 dp 的状态都定义到了我没想到的五维,这看起来既暴力又美观(暴力美学)。

《算法竞赛进阶指南》: 设计动态规划的状态转移方程,不一定要以“如何计算出一个状态”的形式给出,你也可以考虑”一个已知状态应该更新哪些后续阶段的位置状态“。

收获: 1.对 无后效性最优子结构 有了更深的认识。

2.对 DP状态的定义 的定义又多了一种认识。(以后要更大胆一点,之前一直觉得三维基本上都顶天难度了)

3.”状态“ ”阶段“ ”决策“ 动态规划的三要素。

4.”子问题重叠“ ”无后效性“ ”最优子结构“ 动态规划的三个基本条件。

自己之前对线性DP的一些求解流程:

1.读懂题

2.根据题目的数据范围和求解对象定义DP的含义 即 dp_{i,j} 表示什么?

3.初始条件答案确定

4.写状态转移方程

5.确定枚举顺序限制条件

6.写程序 AC。

 

 

标签:无后效,状态,子结构,DP,线性,最优,dp
From: https://www.cnblogs.com/XiaoMo247/p/17918731.html

相关文章

  • Flink处理函数解析(ProcessFunction和KeyedProcessFunction)
    Flink中的处理函数(ProcessFunction和KeyedProcessFunction)在对于数据进行颗粒化的精确计算时使用较多,处理函数提供了一个定时服务(TimerService),可以向未来注册一个定时服务,我们可以把它理解为一个闹钟,当闹钟响起时,就调用ProcessFunction中的onTimer()方法,会对数据进行一些计算。我......
  • 【算法】【线性表】移除元素
    1 题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例1:输......
  • 机器学习-线性分类-支持向量机SVM-SMO算法-14
    目录1.SVM算法总结2.SMO算法1.SVM算法总结选择核函数以及对应的超参数为什么要选择核函数?升维将线性问题不可分问题升维后转化成线性可分的问题核函数有那些?lineagausspolinormailtanh选择惩罚项系数Cmin||w||2+Csum(ei)构造优化问题:利用SMO......
  • 金牌导航-数据结构优化DP
    数据结构优化DP例题A题解设\(f_{i,j}\)表示以第\(i\)位为结尾,长度为\(j\)的严格单调上升子序列的数量。那么显然有\(f_{i,j}=\sum_{k=1}^{i-1}f_{k,j-1}\times(a_k<a_i)\)然后发现这玩应\(O(n^2m)\)直接寄掉了。考虑优化。发现只有当\(a_k<a_i\)时才会有贡献。......
  • TQX 的 DP AAgain!
    闲话:这确实抽象,将所有人给干离线了……不如叫做TQX的离线DPQwQDP基本思路就是找一个比较好的能够描绘问题的状态,想怎么转移,再进行优化。--TQX背包DPloj6089.小Y的背包计数问题根号分治优化背包,大概就是利用\(cnt\timessiz\gecap\)将多重变为完全,然后统......
  • wordpress博客系统
    wordpress博客系统LNMP:Linux+nginx+mysql+php一个操作系统+web网站+一个数据库存放数据+后端编程语言基于红帽操作系统来搭建1.需要一个本地yum仓库[[email protected]]#vimlocal.repo[local]name=localbaseurl=file:///mediaenabled=1gpgcheck=0[root@ser......
  • subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero
    一、原因pytorch版本大于1.5二、解决1、降低pytorch版本将pytorch版本降到1.5以下2、禁用ninjiapytorch默认使用ninjia作为backend,将其禁用。替换为以下代码setup(...,cmdclass={#'build_ext':BuildExtension,'build_ext':BuildExtensi......
  • 宝塔面板搭建部署wordpress个人网站实现无公网即可远程访问(小白建站福音!!)
    WordPress是一个非常灵活和强大的博客建站平台,适用于各种不同类型的网站建设需求。简单几步实现宝塔面板结合cpolar工具实现无公网远程访问,无需云服务器即可发布自己的网站到公网访问1.环境安装wordpress运行需要PHP环境,我们在宝塔商店中我们搜索PHP8.0版本安装 然后安......
  • 金牌导航-期望概率DP
    期望概率DP例题A题解首先,对于随机变量\(X\)如果设随机变量\(Y\)的取值集合是\(I(Y)\),那么有全期望公式\[E(X)=\sum_{y\inI(Y)}E(X|Y=y)\timesP(Y=y)\]其中,\(E(X|Y=y)\)表示在\(Y=y\)的条件下\(X\)的期望取值。对于这道题,长度增加一对答案的贡献是\(3E^2(x)+3E(x......
  • 状压 DP 学习笔记
    前言2023.8.30开始停课集训。开始补\(CSP-S\)的知识点,先打算来学状压\(DP\)。定义状压\(DP\)的全称是状态压缩动态规划,也是动态规划中的一种。但是其与普通\(DP\)不同的是它将某种状态(一般为二进制\(01\)串,\(1\)表示选,\(0\)表示不选。也有其它进制)作为了\(dp\)......