首页 > 其他分享 >动态DP

动态DP

时间:2024-02-22 20:56:56浏览次数:28  
标签:子段 max sum 矩阵 son 动态 DP

动态DP

最大子段和

考虑设\(f_i\)表示以i为结尾的最大子段和,\(g_i\)表示i以内的最大子段和

\[f_i=\max(f_{i-1}+a_i,a_i) \]

\[g_i=\max(g_{i-1},f_i) \]

然后非常容易将每个权值变成一个矩阵,然后每次修改就变成修改一个矩阵

用线段树维护即可

树上最大独立集(没有上司的舞会带修)

考虑基础的做法,设\(f_{i,0/1}\)表示以i为根的子树中,i放/不放的最大独立集

\[f_{i,0}=\sum_{son}\max(f_{son,0},f_{son,1}) \]

\[f_{i,1}=\sum_{son}f_{son,0} \]

然后考虑带修,想到树剖

然后就可以再设\(f_{i,0/1}\)表示以i为根的子树(不包括i的重儿子)中,i放/不放的最大独立集

\[g_{i,0}=\sum_{son\in light}\max(g_{son,0},g_{son,1}) \]

\[g_{i,1}=\sum_{son\in light}f_{son,0} \]

image-20230113144620492

然后为什么要把矩阵立起来?考虑到树剖的dfn序在链中,是上到下升序,so要倒过来(自行理解)

然后就可以简单的解决,因为修改时一个重链中的矩阵不会相互影响(g的DP转移式中可以看出)

时间复杂度\(O(q\log^2N)\)

标签:子段,max,sum,矩阵,son,动态,DP
From: https://www.cnblogs.com/zhy114514/p/18024044

相关文章

  • 基于STM32F407MAC与DP83848实现以太网通讯二(DP83848硬件配置以及寄存器)
    参考内容:DP83848数据表一、PHYDP83848功能模块图                     DP83848的硬件模块主要为:MII/RMII/SNI INTERFACES:用于与MAC数据传输的MII/RMII/SNI接口Transmit BLOCK:数据发送模块,将从外部MAC(例如STM32ETH外设的MAC)接收......
  • 基于STM32F407MAC与DP83848实现以太网通讯一(STM32以太网(ETH)外设)
    STM32F4xx可以通过以太网按照IEEE802.3-2002标准发送和接收数据。支持与外部物理层(PHY)相连的两个工业标准接口:默认情况下使用的介质独立接口(MII)(在IEEE802.3规范中定义)和简化介质独立接口(RMII)。具体的以太网(ETM)特性参考:STM32F4xx中文参考手册这里将重要的地方进......
  • 玉蟾宫(悬线dp)
    求最大子矩阵一般用采用悬线法(包好用的牢底)悬线法:[以这道题为例,我们将R称为障碍格子,将F称为非障碍格子]我们选择任意一个非障碍格子,引出三条直线:左直右直上直随后从这个点出发,分别向上左右延申直到遇到障碍格我们要求上悬线尽可能高的面积,但有可能上一......
  • Leetcode刷题第十二天-动态规划
    1049:最后一块石头的重量II链接:1049.最后一块石头的重量II-力扣(LeetCode)1classSolution:2deflastStoneWeightII(self,stones:List[int])->int:3#dp[i]背包为i的最大价值为dp[i]4#推导公式dp[i]=max(dp[i],dp[i-stones[i]]+stones[i]......
  • linux常用命令--dpkg
    dpkg是Debain系列linux发行版本中的重要命令,用于管理软件包,安装、配置、卸载等等。更多介绍请参考官方文档:www.dpkg.orgdpkg常用参数:dpkg-ipackage_file.deb安装指定软件包 dpkg-igvim.debdpkg-rpackage_file.deb删除以安装的软件包,但保留配置文件 dpkg-rgv......
  • day39 动态规划part2 代码随想录算法训练营 63. 不同路径 II
    题目:63.不同路径II我的感悟:题目不难,就是不知道哪个煞笔,把路拦截死了,并且入口就放石头,我真是吐了。理解难点:初始值的遇到障碍要Break其他我写的没错边界考虑:还有入口和出口有障碍物的话,要直接返回0.听课笔记:差不多,考虑的点就是:初始值后面为break开头和结尾有障......
  • dp 学习笔记 (2024/2/22 - )
    计数[ARC107D]NumberofMultisets[ARC104D]MultisetMean大值域限制偏序计数[CF1295F]GoodContest[ARC104E]RandomLIS......
  • Qt QWindowsWindow::setGeometryDp: Unable to set geometry问题
    总结原因:由于子窗口和父窗口的大小关系不健康,导致父窗口resize失败,失败后会自定义大小解决方法:首先,修改父窗口尺寸,保证其大小可以容纳子部件,可以使用setFixSize()之类的函数修改父窗口尺寸。其次,一定要保证修改父窗口尺寸的函数是放在窗口布局代码之前,如图,我的setIn......
  • 如何在C#中使用 Excel 动态函数生成依赖列表
    前言在Excel中,依赖列表或级联下拉列表表示两个或多个列表,其中一个列表的项根据另一个列表而变化。依赖列表通常用于Excel的业务报告,例如学术记分卡中的【班级-学生】列表、区域销售报告中的【区域-国家/地区】列表、人口仪表板中的【年份-区域】列表以及生产摘要报告中的【单位-......
  • Keras深度强化学习--DPG与DDPG实现
    DQN系列算法对连续空间分布的action心有余而力不足,而PolicyGradient系列的算法能够有效的预测连续的动作。在此基础上DPG和DDPG算法被提了出来,并且能够有效地处理连续动作问题。Paper:DPG:DeterministicpolicygradientalgorithmsDDPG:ContinuousControlwithDeepReinforce......