赤と青のエッジを持つグラフGと定数Kが与えられた場合、正確にK個の赤のエッジを持つGのスパニング ツリーを見つける決定論的線形時間アルゴリズムを考案します (または、そのようなスパニング ツリーが存在しない場合は戻ります)。False
これまでに行ったこと:
すべての赤いエッジの重みを -1 にし、すべての青いエッジの重みを 0 にします。
最小スパニング ツリーを見つけます (標準の線形時間アルゴリズムを使用)。したがって、重みが最小のスパニング ツリーTがあります。つまり、赤いエッジは重みを減らすだけなので、できるだけ多くの赤いエッジを使用しました。
Tの赤いエッジがK未満の場合、 を返します。False
ちょうどK個の赤のエッジがある場合、完了です。Tが答えです。
K個以上の赤のエッジがある場合、それらを青のエッジに置き換える必要があります。
これが私たちの問題です。線形時間でそれを行うにはどうすればよいでしょうか?
青いエッジが追加されるたびにサイクルが作成されるため、サイクルから赤いエッジを 1 つ削除すると機能しますが、この方法で線形性を確保するにはどうすればよいでしょうか? これも良いアプローチですか?