所与\(N \)点(数\(0,1、...、1-N \)ツリーの)、各エッジが量(以下有する(\ 1000)を\)。
二つのツリーノード\(X \)と\(Y \)その和とパスの各側に重みとの間の経路長。
もはやよりシークない\(K \)どのように多くのパス。
入力形式
テストケースの複数のセットを入力します。
各テストケースの最初の行は、二つの整数N及びKを含有します
次\(N-1 \)行、三つの整数を含む各列\(U、V、Lを\) 、表すノード\(U \)と\(V \)一の側と右側との間を値\(L \) 。
入力例とき\(N = 0、K = 0 \)は、その入力が終了していることを示し、そして治療なしのユースケース。
出力形式
各出力試験結果のために。
各結果行。
データ範囲
\(N≤10000\)
サンプル入力:
5 4
0 1 3
0 2 1
0 3 2
2 4 1
0 0
出力例:
8
指定されたノードがあれば\(P \)ルートノードpは、経路ツリーは、2つのカテゴリに分けることができます。
- ルートノードの後に\(P \)
- 含ま\(P \)のサブツリーの(非root \(P \) )
パーティションの考え方によると、クラスの第二の経路は、であることができる\(P \)を再帰的に処理されたサブツリーサブ問題としてそれらのそれぞれの。
クラス1つの経路については、我々は、pの根を見つけるために、サブツリーにあるDFS