2

次のパズルを解こうとしています。テストケースの1つに混乱しています。

問題は次のとおりです。

バイトランドの国には、N 個の都市と、それらの間の N - 1 本の双方向道路が含まれており、2 つの都市間にパスが存在します。Byteland の道路はずっと前に建設されたもので、現在は修理が必要です。あなたはすべての道路を修理するために雇われました。あなたは、いくつかの道路にロボットを派遣することによってこれを行うつもりです。各ロボットは、現在通っている道路を修復してから、隣接する未修復の道路の 1 つに移動します。それを修理した後、彼は別の隣接する未修理の道路に移動し、それを修理します。

2 つの道路は、端点の 1 つに同じ都市がある場合、隣接しています。プロセスを効率化するために、2 台のロボットが同じ道路を修復することはできません。タスクを達成するために必要なロボットの最小数は?

入力: 最初の行にはテスト ケースの数 T が含まれます。T 個のテスト ケースが続きます。各テストケースの最初の行には、Byteland 内の都市の数である N が含まれています。都市には 0..N - 1 の番号が付けられています。次の N - 1 行には、道路の説明が含まれています。i 行目には 2 つの整数 ai と bi が含まれています。これは、数字 ai と bi の都市を結ぶ道路があることを意味します。

出力: テスト ケースに必要な回答を含む各テスト ケースに対応する T 行を出力します。

制約: 1 <= T <= 20
1 <= N <= 10000
0 <= ai,bi < N

今bolowは私が混乱しているテストケースです:

1
15
0 11
1 7
1 11
2 11
2 14
3 4
4 10
4 13
4 8
5 13
6 10
7 9
8 11
11 12

正解は 2 ですが、なぜですか?

4

2 に答える 2

4

ここでの「隣接する道路」の定義に注意してください。ロボットが各道路を 1 回だけ通過する横断を探しているわけではありません。

定義を使用すると、このグラフには 6 10、5 13、2 14、および 7 9 の 4 つの「終端道路」があります。隣接する道路は 1 つしかないため、これらはシーケンスの途中にはありません。これは、2 台のロボット (これらのうちの 2 台で開始し、残りの 2 台で終了) でうまくいくことを示す最初の兆候です。Byteland は 4 8 11 が唯一の接続道路である 2 つのサブカントリーにほぼ分割されていることに注意してください。したがって、2 つのロボットが半分の間を通過することはできず、1 つのロボットがそれぞれの半分を修理するのは自然なことです。

そこから、サンプル トラバーサル (色 - ロボット、数字 - シーケンス) を構築するのはかなり簡単です。

テスト ケースのソリューション例

すべてGraphvizと私の視覚野によるものですが、とにかく一般的な解決策を求めていませんでした.

于 2012-09-17T04:23:39.790 に答える