树状数组Day2总结
一、新知&回顾
1. König定理
对于一个二分图 G ,最小点覆盖数等于最大匹配数。
理解:最小点覆盖是指用最少的点覆盖图中所有的边(每条边至少有一个端点在覆盖集中)。在二分图中,这个最小点覆盖的大小可以通过最大匹配来构造。
2. Gallai恒等式
对于一张图 G = (V, E),设:
I为最小点覆盖F为最大独立集
则恒有:
|I| + |F| = |V|
理解:最小点覆盖和最大独立集互为补集。因为:
- 点覆盖是覆盖所有边的点集
- 独立集是没有边连接的点集
- 一个集合是点覆盖 ⇔ 它的补集是独立集
所以最小点覆盖的补集就是最大独立集。
3. 树的直径
定义:指树中两个最远节点之间的距离。
两次DFS/BFS求直径的原理:
- 从任意节点
u出发,找到距离u最远的节点v - 从
v出发,找到距离v最远的节点w v到w的路径就是树的直径
证明思路:
- 第一次DFS找到的
v一定是直径的一个端点 - 因为如果直径端点是
a和b,那么从任意点u出发的最远点要么是a要么是b - 第二次DFS从
v出发,找到的最远点就是直径的另一个端点
二、有待改进&收获
1. 命名规范
- 避免使用相似的前缀
- 使用有意义的变量名
2. RE调试方法
- 逐步注释代码,定位出错位置
- 使用小数据进行测试
3. 验证思路
- 多画图
- 用手算小样例验证算法

浙公网安备 33010602011771号