Chgtaxihe's blog Chgtaxihe's blog
首页
练习
算法学习
读书笔记
小玩意

Chgtaxihe

首页
练习
算法学习
读书笔记
小玩意
  • 数论

  • 动态规划

    • 动态dp学习笔记
    • 广义矩阵乘法学习笔记
    • 插头dp学习笔记
    • 斜率dp回顾
  • 暴力

  • 图论

  • 数据结构

  • 字符串

  • 几何

  • 博弈论

  • 其他

动态dp学习笔记

# 前言

今天想补一道题,误以为可以用wqs二分做,于是想先复习一下(好久不用都忘了);结果找wqs二分例题时输错了题号,发现了一种神奇的dp。。。

# 题目 洛谷P4719

显然,如果不带修改的话就是一道入门树形dp(设dp[i][0/1]dp[i][0/1]dp[i][0/1]分别为以iii为根的子树,选/不选iii时的最大权值)

考虑一次对点ppp的修改,对于该修改我们只需要对应修改从ppp到rootrootroot的所有dp值即可,复杂度降低!

但如果数据是一条链,那么mmm次修改的复杂度仍然高达O(nm)O(nm)O(nm)

现在考虑一个子问题,在序列a1,a2,a3,...ana_1,a_2,a_3,...a_na1​,a2​,a3​,...an​中,要求选出若干个两两不相邻的数,使得数字和最大,有mmm次修改

显然原题套上树链剖分之后就转化为了上述子问题。

朴素方法

通过广义矩阵乘法可解(详见参考资料)

问题转化为求区间上所有矩阵的积,线段树可解

# 参考资料

https://www.luogu.com.cn/blog/81844/solution-p4719

上次更新: 2021/02/24, 03:37:30
高斯整数学习笔记
广义矩阵乘法学习笔记

← 高斯整数学习笔记 广义矩阵乘法学习笔记→

最近更新
01
深入理解Java虚拟机
03-04
02
DNS工作原理
02-27
03
改用VuePress啦
02-23
更多文章>
Theme by Vdoing | Copyright © 2019-2021
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式