OI树上问题 简单学习笔记


判断链

  • 每个点的度数不超过2

判断树

  • n个点,n-1条边
  • 每两个点之间的路径唯一

多叉树转换成二叉树

第一个孩子作为左孩子,第一个孩子的兄弟作为它的右孩子。

树的重心

树上一点,满足删除该点时,树内剩下的子树最大节点数最小。

性质

1、树的重心每棵子树的大小一定小于等于\(n/2\)

2、每颗子树的大小都小于等于\(n/2\)的点一定是这棵树的重心(就是上一个的逆定理)

3、树中所有点到某个点的距离和中,到重心的距离和最小(如果有两个重心,他们的距离一样)
证明:我们考虑使用调整法,设当前最优决策为u点,v为u的任意相邻节点。记size(x)为当u为整棵树的根时,以x为根的子树的节点的大小。
u为全局最优决策当且仅当\(n-size(v)\ge size(v)\),否则最优策略一定在不满足该条件的v的子树中。
我们化简这个式子,即\(size(v)\le n/2\)
由定理2得,该点为树的重心。

4、两棵树通过一条边相连成为一颗新的树,新树重心一定在原来两棵树得重心的路径上。(注意中心不止一个的情况)
例题:cf civilization


怎么找重心?

方法1:处理出每个节点的

上一篇:cognos report利用文本框提示优化日期维度


下一篇:Intellij IDEA创建的Web项目配置Tomcat并启动Maven项目