首页 > 其他分享 >动态DP 笔记

动态DP 笔记

时间:2022-10-23 13:12:52浏览次数:79  
标签:子树 矩阵 笔记 修改 重链 动态 DP

矩乘大家都会!

线段树大家都会!

所以动态 DP 就这样诞生了!

一些线性能做的 DP 可以写成广义矩阵乘法的形式,只要这个广义矩阵乘法具有结合律,那么就可以进行区间查询一类的操作,也可以进行单点修改,只需要架到线段树上即可。

于是序列上的动态 DP 就出现了!

例题:ABC246Ex题解

树上问题

各种序列上问题都可以架到树上。

如果是树的话,就没有那么简单了。

于是我们使出树上问题常用的好东西:树链剖分!

一条重链上维护所有的转移矩阵,而轻儿子的贡献直接暴力合并到上面的重链上。

具体来讲就是 \(f_{i,0/1}\) 表示第 \(i\) 个点,选/不选 \(i\) 且不考虑重儿子的答案,\(g_{i,0/1}\) 就是考虑重儿子的答案。我们可以一次求出整个 \(f,g\),如果有查询整棵树的,就是对应根的重链,查询子树的就是对应的位置的向下的重链的答案。

所以怎么构造矩阵呢。

我们需要构造一个包涵轻儿子信息的东西,这样和重儿子乘一起之后就会得到自己的答案。

具体怎么构造看方程吧,(其实是我懒得写了)。

然后就是修改了。修改会影响当前点所在的重链和它所在的所有轻链之上的父亲的转移矩阵,所以我们架到线段树上,直接修改对应点的转移矩阵,然后跳重链,跳到一个就修改那里的转移矩阵。

就这样,没有了。

没见过几个题。

【模板】"动态 DP"&动态树分治

就是上面说的板子

没了。

[NOIP2018] 保卫王国

还是上面说的板子,因为全集-最大独立集=最小覆盖。

强制选就是点权设的很大,强制不选就是点权设的很小。

但是由于这题没有修改点权的操作,所以存在更智慧的做法。

就是预处理出每个点向上 \(2^j\) 个点之内与所有点的子树(不包括 \(i\) 的子树)的 DP 值,\(i\) 和它祖先选不选都处理出来,然后再算一个整棵树除了 \(i\) 的子树的贡献,这样就能处理出询问的内容。

P6021 洪水

和板子很像,矩阵推一推就出来了。

标签:子树,矩阵,笔记,修改,重链,动态,DP
From: https://www.cnblogs.com/cc0000/p/16818381.html

相关文章

  • Edu DP
    A定义\(f_{i}\)为跳到第\(i\)格的最小cost。跳出一步后的子问题和跳出一步前的子问题基本相同,只不过一个跳到\(i-1\)一个跳到\(i\),则有\[f_i=\min\{f_{i-1}+......
  • kubernetes笔记-3-基本操作
    一、增删改查root@master:~#kubectlrunninig-deploy--image=nginx:1.14-alpine--port=80--replicas=1--dry-run=true  #创建一个容器;run已被弃用  --image:指......
  • Python笔记
    @目录前言总结如何搭建虚拟环境main.py文件一定要根目录下面python中类的变量和实例变量的区别pyqt5的按钮点击事件删除线程函数问题使用pyinstaller编译成exe 如果提示 ......
  • new创建动态内存
    int*q=newint;*q=3;cout<<*q<<endl;deleteq;int*q=newint(3);//两种方式newcout<<*q<<endl;deleteq;......
  • 20201306吴龙灿第五章学习笔记
    Ⅰ知识点归纳一、硬件定时器定时器是由时钟源和可编程计数器组成的硬件设备。时钟源通常是一个晶体振荡器,会产生周期性电信号,以精确的频率驱动计数器。硬件定时器能够按......
  • 吴军《浪潮之巅(下)》阅读笔记---信息时代的科学基础
    工业革命和颠覆式创新的范式:现有产业+新技术=新产业。从工业革命之前一个世纪开始一直到二战之前,科学基础是以牛顿力学为代表的经典物理学,相应的方法论是机械论。到二战后......
  • 详解决策树-决策树的生成ID3算法和C4.5算法【十分钟机器学习系列笔记】
    视频作者:简博士-知乎;简博士的个人空间_哔哩哔哩_bilibili链接:【合集】十分钟机器学习系列视频《统计学习方法》_哔哩哔哩_bilibili原书:《统计学习方法》李航 ID......
  • 20201220蔡笃俊《信息安全系统设计与实现》第五章学习笔记
    一、任务内容自学教材第5章,提交学习笔记(10分)知识点归纳以及自己最有收获的内容(3分)问题与解决思路(2分)实践内容与截图,代码链接(3分)...(知识的结构化,知识的完整性等,提交m......
  • mypwd学习笔记
    Mypwd1.学习pwd命令manpwd查询:pwd指令功能:Linuxpwd(英文全拼:printworkdirectory)命令用于显示工作目录。执行pwd指令可立刻得知您目前所在的工作目录的绝对路径......
  • AGC017F Zigzag【状压 DP】
    传送门以下认为\(n,m\)同阶。首先,我们可以根据每次走的方向用一个二进制数来表示一条折线。这样显然有一个傻逼DP,设\(f_{i,S}\)表示已经确定了前\(i\)条折线,其中......