树状数组Day2总结

一、新知&回顾

1. König定理

对于一个二分图 G最小点覆盖数等于最大匹配数

理解:最小点覆盖是指用最少的点覆盖图中所有的边(每条边至少有一个端点在覆盖集中)。在二分图中,这个最小点覆盖的大小可以通过最大匹配来构造。

2. Gallai恒等式

对于一张图 G = (V, E),设:

  • I 为最小点覆盖
  • F 为最大独立集

则恒有:

|I| + |F| = |V|

理解:最小点覆盖和最大独立集互为补集。因为:

  • 点覆盖是覆盖所有边的点集
  • 独立集是没有边连接的点集
  • 一个集合是点覆盖 ⇔ 它的补集是独立集
    所以最小点覆盖的补集就是最大独立集。

3. 树的直径

定义:指树中两个最远节点之间的距离。

两次DFS/BFS求直径的原理

  1. 从任意节点 u 出发,找到距离 u 最远的节点 v
  2. v 出发,找到距离 v 最远的节点 w
  3. vw 的路径就是树的直径

证明思路

  • 第一次DFS找到的 v 一定是直径的一个端点
  • 因为如果直径端点是 ab,那么从任意点 u 出发的最远点要么是 a 要么是 b
  • 第二次DFS从 v 出发,找到的最远点就是直径的另一个端点

二、有待改进&收获

1. 命名规范

  • 避免使用相似的前缀
  • 使用有意义的变量名

2. RE调试方法

  • 逐步注释代码,定位出错位置
  • 使用小数据进行测试

3. 验证思路

  • 多画图
  • 用手算小样例验证算法
posted @ 2026-02-03 19:49  My_Sternstunde  阅读(1)  评论(0)    收藏  举报