首页 > 其他分享 >动态规划学习笔记

动态规划学习笔记

时间:2024-08-03 08:55:34浏览次数:11  
标签:slope le 2h mid 笔记 斜率 2g 动态 规划

P3195

求出玩具的前缀和 \(S\)。

设 \(f_i\) 表示区间 \([1,i]\) 的最大答案。开始应该是 \(f_0=0\)。

\(f_i =\max_{1 \le j < i}f_j+(i+S_i-L-1-(j+S_j))^2\)。

\(f_i =\max_{1 \le j < i}f_j+(i+S_i-L-1)^2+(j+S_j)^2-2(i+S_i-L-1)(j+S_j)\)。

设 \(g_i=i+S_i,k=L+1\),那么 \(f_i=\max_{1 \le j<i}f_j+(g_i-k)^2+g_j^2-2g_j(g_i-k)\)。

把 \(i\) 这边的去掉,就是 \(f_i=(g_i-k)^2+\max_{1 \le j<i} f_j+g_j^2-2g_jg_i-2g_jk\)。

考察两个点 \(j_1<j_2\),且 \(j_1\) 不劣于 \(j_2\) 的条件。

那就是 \(f_{j_1}+g_{j_1}^2-2g_{j_1}(g_i-k) \le f_{j_2}+g_{j_2}^2-2g_{j_2}(g_i-k)\)

\[f_{j_1}-f_{j_2}+g_{j_1}^2-g_{j_2}^2-2g_{j_1}(g_i-k)+2g_{j_2}(g_i-k) \le 0 \]

\[f_{j_1}-f_{j_2}+g_{j_1}^2-g_{j_2}^2-2g_{j_1}(g_i-k)+2g_{j_2}(g_i-k) \le 0 \]

\[f_{j_1}-f_{j_2}+g_{j_1}^2-g_{j_2}^2\le(2g_{j_1}-2g_{j_2})(g_i-k) \]

记 \(F(j)=f_j+g_j^2\),那么 \(F(j_1)-F(j_2) \le (g_{j_1}-g_{j_2})2(g_i-k)\)

由于 \(j_1 <j_2\),所以 \(g_{j_1}<g_{j_2}\),那么 \(\frac{F(j_1)-F(j_2)}{g_{j_1}-g_{j_2}} \ge 2(g_i-k)\)。

换言之,\(\frac{F(j_2)-F(j_1)}{g_{j_2}-g_{j_1}} \ge 2(g_i-k)\)。

记 \(slope(i,j)=\frac{F(j)-F(i)}{g_j-g_i}\),其中 \(i<j\)。

然后,套路的考虑三个点 \(l<mid<r\),\(mid\) 为最优决策的条件。

需要满足 \(slope(l,mid)\le 2(g_i-k),slope(mid,r) \ge 2(g_i-k)\)。

那么 \(slope(l,mid) \le slope(mid,r)\)。

如果不是这样,\(mid\) 就一定不是最优决策,删掉即可。最后剩下一个下凸壳。

然后在 \(i\) 操作的时候,只需要找到第一个斜率超过 \(2(g_i-k)\) 的点即可。

AT_dp_z Frog 3

\(f_i=h_i^2+C+\min_{1 \le j<i} f_j+h_j^2 -2h_ih_j\)

对后面进行优化。

假设 $j_1 $ 不比 \(j_2\) 劣,且 \(j_1<j_2\)。

那就是 \(f_{j_1}+h_{j_1}^2-2h_ih_{j_1} \le f_{j_{2}}+h_{j_2}^2 -2h_ih_{j_2}\)。

移项,容易得到 \(2h_i(h_{j_2}-h_{j_1})\le f_{j_2}-f_{j_1}+h_{j_2}^2-h_{j_1}^2\)。

记 \(F(j)=f_{j}+h_j^{2}\)。

原式可化为 \(2h_i \le \frac{F(j_2)-F(j_1)}{h_{j_2}-h_{j_1}}\)。

记 \(slope(i,j)=\frac{F(j)-F(i)}{h_{j}-h_{i}}(i<j)\)

假设有三个决策 \(l,mid,r\),其中 \(l<mid<r\)。若 \(mid\) 为最优决策点,需要满足的条件是:

$slope(l,mid) \le 2h_i,solpe(mid,r) \ge 2h_i $

那么 \(solpe(l,mid) \le solpe(mid,r)\)。
那么如果有一对 \(l<mid<r\),满足 \(solpe(l,mid) \ge solpe(mid,r)\),那么 \(mid\) 一定不可能成为最优决策,可以删掉。

那么最后剩下的相邻两个点一定不会出现斜率 $\ge $ 的情况,那么斜率就是单调递增的一个下凸壳。

那么斜率单调递增了,对于一对斜率不超过 \(2h_i\) 的节点 \((j_1,j_2),j_1 <j_2\),那么 \(j_2\) 一定比 \(j_1\) 优,那么应该选的是靠后的,但是对于超过了的,那 \(j_1\) 就不比 \(j_2\) 劣,直接无敌。

因为 \(h\) 单调,所以不会出现之前不优后来优的情况。

至于等号,有一个技巧就是全都带上肯定是没问题的。

标签:slope,le,2h,mid,笔记,斜率,2g,动态,规划
From: https://www.cnblogs.com/aCssen/p/18340015

相关文章

  • 生成函数 学习笔记
    生成函数学习笔记有一部分没地方写的组合数学,先写这里。0.pre-learning1.上升/下降幂:\[n^{\underline{k}}=n\times(n-1)\times\cdots\times(n-k+1)\]称为\(n\)的下降幂。同理:\[n^{\overline{k}}=n\times(n-1)\times\cdots\times(n+k-1)\]称为\(......
  • C++学习笔记之指针高阶
    数组名数组名字是数组的首元素地址。一个指针变量保存了数组元素的地址。我们就称之为数组元素指针,及数组指针。数组指针的本质是指针,指向数组中的某个元素的地址。 由于数组名可以代表数组收元素地址,数组元素是可以通过 数组名[下标]的格式访问,那么可以定义一个指针......
  • 【系统规划与管理师】【论文】【资料】IT服务方案设计与实施
    (整理该篇资料作为写作素材)内容涵盖:1、本阶段作为系统规划与管理师应做什么;(what)2、做法的目的和效益;(why)3、本阶段作为系统规划与管理师应怎么做;(how)————应思考的问题:————(1)如何将这些做法及效益串联起来,转换为自己的做法在论文中进行巧妙衔接和说明?(2)哪几个部分......
  • [paper阅读笔记][2023]CorpusLM: Towards a Unified Language Model on Corpusfor Kno
    文章链接:https://arxiv.org/pdf/2402.01176v2Paper的任务处理各种知识密集型任务任务的科学问题本文任务虽然是:提出一个统一的语言模型来处理各种知识密集型任务,但其实其本质科学问题是:如何提高LLMs在知识密集型任务中的检索效率。原因是:LLMs在生成文本时容易出现错误信......
  • 微信小程序笔记完整总结,带你零基础速成微信小程序。
     ......
  • 02 Go语言操作MySQL基础教程_20240729 课程笔记
    概述如果您没有Golang的基础,应该学习如下前置课程。Golang零基础入门Golang面向对象编程GoWeb基础Go语言开发RESTAPI接口_20240728基础不好的同学每节课的代码最好配合视频进行阅读和学习,如果基础比较扎实,则阅读本教程巩固一下相关知识点即可,遇到不会的知识点再看视频......
  • Datawhale AI夏令营(AI+生命科学)深度学习-Task3直播笔记
    机器学习lgm上分思路    1、引入新特征(1)对于Task2特征的再刻画        GC含量是siRNA效率中的一个重要且基本的参数,可以作为模型预测的特征。这是因为低GC含量会导致非特异性和较弱的结合,而高GC含量可能会阻碍siRNA双链在解旋酶和RISC复合体作用下的解旋。......
  • Java HashMap 源码解读笔记(二)--xunznux
    文章目录HashMapputVal插入新值方法方法解读1.7和1.8有哪些区别resize重新哈希方法treeifyBin树化方法treeify树化方法untreeify链化方法HashMap本文主要是用于记录我在阅读Java1.8的HashMap源码所做的笔记。对于源码中的注释会进行翻译下来,并且会对其中部......
  • Java HashMap 源码解读笔记(一)--xunznux
    文章目录HashMap介绍实现说明:源码解读静态常量和内部节点类Node静态工具方法属性字段Fields未完待续。。。HashMap本文主要是用于记录我在阅读Java1.8的HashMap源码所做的笔记。对于源码中的注释会进行翻译下来,并且会对其中部分源码进行注释。这一篇文章主要......
  • 算法·理论:KMP 笔记
    \(\text{KMP}\)笔记!上次比赛,出题人出了一个\(\text{KMP}\)模板,我敲了个\(\text{SAM}\)跑了,但是学长给的好题中又有很多\(\text{KMP}\),于是滚回来恶补字符串基本算法。\(\text{KMP}\)是上个寒假学的,为什么最近才完全理解,但\(\text{KMP}\)短小精悍,极其精简,确实难懂,所以很......