与えられたサボテン、私たちは、このような方法という点で、その辺を重み付けしたいです
- 各頂点について、頂点に入射するエッジの重みの合計は1以下です。
- すべてのエッジの重みの合計が最大化されます。
明らかにその答えは ために 頂点( どこ 1つの頂点の合計であり、 すべてのエッジの合計です)。この境界は、各エッジを1/2に重み付けすることにより、サイクルグラフで達成できます。
木に貪欲なアルゴリズムを見つけました。葉に付随するエッジに1を割り当て、繰り返しパスでグラフからそれらとその近傍を削除します。これにより、サボテンが相互接続された一連のサイクルまで剪定されます。この時点で、残りのサイクルは相互接続されておらず、各エッジに1/2の重みが付けられていると想定しました。これは9/10のテストケースを取得しましたが、もちろん不完全です。
では、サボテンの一般的な問題をどのように解決すればよいでしょうか?私は完全な解決策よりもヒントを好みますが、どちらでもかまいません。
この質問には、InterviewStreet CompanySprintからの問題が含まれます。私はすでに競争しましたが、問題についてのいくつかの考えが欲しいです(解決策はリリースされていません、そして私はこの問題について壁に頭をぶつけています)