树的重心
.
做一只大熊猫
让优秀成为一种习惯!
展开
-
H - Kay and Snowflake CodeForces - 686D(树的重心性质)
题意占坑思路代码#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>#include <string>#include <queue>#include <map>#include <bitset>#include <vector原创 2021-03-06 21:53:35 · 146 阅读 · 0 评论 -
B - Link Cut Centroids CodeForces - 1406C(树的重心)
题意给我们一颗树,我可树中的删除一条边,形成两课树,然后我们可在这两棵树直接在添加一条边(可以添加原来的删除的边),使形成的新树,之后一个重心。思路如果只有一个重心的话,随便选择一条边删除、增加上就行了。如果有两个中重心的话,设这两个重心的结点为 x、y,他直接相临,互为父子关系,而且把 x——y 之间的边删掉,形成的两棵树是相等价的,为了破坏这个等价 / 平衡关系,只需要把与 x 相连另一个结点 z 之间的边删去,再把这个 z 子树链接到 y 上就行了代码#include <i原创 2021-03-06 20:37:24 · 115 阅读 · 0 评论 -
A - Balancing Act POJ - 1655(树的重心模板)
题意给我们一棵树我们合理的删除一个点,之后会形成一些子树,使最大子的树的数量尽肯能的小,输出这个尽可能的小的值。思路树的重心定义:对于树上的每一个点,计算其所有子树中最大的子树节点数,这个值最小的点就是这棵树的重心。(这里以及下文中的 “子树” 都是指无根树的子树,即包括 “向上” 的那棵子树,并且不包括整棵树自身。)另一种定义方式:以某个子树为根节点时(那么这个根就是 重心),最大子树节点个数不超过总结点个数的一半。 这里我们可以推论出:如果以某个节点为根的时候,这个根下面的某个直接子原创 2021-03-06 20:18:45 · 156 阅读 · 0 评论