对知识的一些理解

最近集训一直在学习一些新知识,却又都没有讲这些东西理解到位。
最近看到了 pkl 对网络流的理解,发现自己缺乏的是对一些知识自己透彻的理解,所以以后会把自己对知识的理解放到这里吧。
这也应该是我之后一直应该做的一点!QwQ


最大流

  • 最大流的正确性依赖于每一条 S - T 流都一一对应着一个方案

    • 每一个层次对应一个约束
    • 每一个分支对应着一种选择
    • 考虑用网络流去分配某一种东西并完美地使所有不满流的情况包含所有实际问题中不合法的情况
    • 对于建图的时候要注意相关联的限制们一定要在一条完整的路径上
      不要全都从 S 点出来或者分开从某个点出来,一定要通过某种方式连起来

    为什么要拆点呢?
    拆点是为了让他强制经过某一个层次(被约束着不让它出现不合法例如直接流到 T 这种情况

点分治与树剖的区别

一个是点分治,一个是链分治。

点分治分两种:一种用点分治统计信息;另一种用点分治维护信息。
树剖一般与点分治的第二种功能功能类似。

点分治是以子树为单位维护的,子树还包括其他子树,通过枚举子树维护信息;树剖是以链为单位维护的,链直接包含点,链之间不相交,链是线性结构所以通过线段树维护信息。

动态点分治

动态点分治的动态体现在哪里呢?就是增加点权修改等修改操作,让我们强制在线。
既然增加了修改操作,因为点分治是以子树为单位的,我们并不关心他真正的父亲到底是谁,我们就可以由原树重构一颗点分树,也就是把这棵树的重心作为根节点,然后子树为他的子树的重心这样递归下去,每个节点存的是其子树的信息。
最后分治树中包了全部节点。

这一类题目通常让我们统计花费一类的,可以参见 【ZJOI 2015 幻想乡战略游戏】【动态点分治】 里是如何统计的,十分套路。

DP

DP 小结

动态规划常常适用于有重叠子问题最优子结构性质的问题。

最优子结构性质:问题的最优解所包含的子问题的解也是最优的。

子问题重叠性质:子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存,当再次需要计算已经计算过的子问题时,直接调用。

并且在使用 DP 时一定要保证,问题具有无后效性

即它要求每个子问题的决策不能对后面其他未解决的问题产影响, 如果产生就无法保证决策的最优性, 这就是无后效性。往往需要我们找到一个合适的状态。上述的问题还有另外一个描述方式, 对于后一个节点的判断不能以前面节点的路径为依据。

你可能感兴趣的:(学习总结)