このツイートによると、ARC116E は xmas16H を少しいじると解けるらしいです。
かなりびっくりしたので証明をしようとしてみたら出来ました。
これら2つの問題はいずれも整数 N, K と N 頂点の木が与えられます。
(xmasの方は重み付きですが、重みなしの問題で考えます)
ARC116Eの概要
K 頂点選んで、各頂点から選ばれた頂点までの距離の最大値を最小化せよ
xmas16Hの概要(ちょっと変えてるけど)
K+1 頂点選んで、選ばれた頂点間の距離の最小値を最大化せよ
双対感があると言われれば、そんな気もしなくはない?
これらの問題の答えをそれぞれ とすると、 が成り立つことを証明します。
とりあえずサンプルとしてパスグラフを考えてみると、
となり、たしかに成り立っています。(厳密に書きましたが、だいたいで良いです)
と に分けて証明します。
を示す。
ある頂点から距離 以内の頂点の集合をエリアと呼ぶことにする。
エリアから 2 つの頂点を選ぶと、それらの距離は 以下になる。
ARC116E で を達成する解を 1 つとると 個のエリアで全頂点が被覆できるため、
互いの距離が 以上になるように頂点を選ぶとき、高々 頂点しか選ぶことができない。
よって、。
を示す。
ARC116E の判定問題は以下のアルゴリズムで解ける。
- 根を適当に選んで根付木にし、以下を繰り返す
- 残っている頂点のうち最も深いものを v とする
- v の 個上の祖先を選び、距離 以内の頂点を候補から消す
一方、xmas16H の判定問題は以下のアルゴリズムで解ける。
- 根を適当に選んで根付木にし、以下を繰り返す
- 残っている頂点のうち最も深いものを v とする
- v を選び、距離 以内の頂点を候補から消す
これらのアルゴリズムは 3. のみが異なるが、実は挙動はほぼ同じである。
特に、 が奇数の場合は とすると完全に等しい。
祖先を選ぶか v を選ぶかの差は"祖先"以下の部分木内でしか生まれないが、
いずれにせよ"祖先"以下の部分木内の頂点は全て候補から消されるため、等しくなる。
(最も深いものを v としているのが効いている)
ARC116E の答えが であることから、 で上記のアルゴリズムを実行すると 個以上の頂点が選ばれるはずである。
つまり xmas16H で としたときの判定問題は True となるはずであり、 が示された。
ちなみに の方も同じように示すことも出来ますね。