各サブツリーサイズQ.ツリー:
ボイド get_size(INT X){ SIZ [X] = 1 。 以下のために(INT iが= 0 ; I <VEC [X] .size()と、I ++ ){ get_size(VEC [X] [I])。 SIZ [X] + = SIZ [VEC [X] [I]]。 } }
ツリーの各ノードのQ.深さ:
ボイド get_dep(INT X){ ため(intは iは= 0 ; I <VEC [X] .size(); I ++ ){ DEP [VECを[X] [I] = DEP [X] + 1 。 get_dep(VEC [X] [I])。 } }
Q.ツリーツリーの各ポイント右最大のポイント:
ボイド get_val(INT X){ ヴァル[X] = W [X]。 以下のために(INT iが= 0 ; I <VECを[I] .size(); I ++ ){ get_val(VEC [X] [I])。 ヴァル[X] = MAX(ヴァル[X]、ヴァル[VEC [X] [I])。 } }