解法
頂点1が距離0でない場合や、頂点1以外が距離0である場合は、明らかに答えが0になるので処理しておきます。
それ以外のグラフについて考えます。
あらかじめ、距離がの頂点の個数
をそれぞれカウントしておきます。
距離がである頂点は、距離が
である頂点、
である頂点、
である頂点に向けて辺を張ることができます。
である頂点との辺は、距離が
である頂点から張る辺について考慮するときに計算すればよいので、距離が
である頂点について考えるとき、
の頂点と
の頂点に向けて張る辺についてのみ計算していきます。
距離
の頂点に向けての辺の張り方
距離の頂点を1つ選びます。すると、この頂点は、距離が
である頂点のうちすくなくとも1つの頂点に向けて辺が張られていなければなりません。
今選んだ頂点と、個の頂点との辺の張り方は、
通りありますが、この中で選んではいけないパターンは、どこにも辺が張られていないパターンただ1つです。
ということで、距離の頂点1つに対し、距離
の頂点との辺の張り方は
通りとなります。
これが、個の頂点について同じことが考えられるので、最終的に距離
の頂点と
の頂点についての辺の張り方は、
通り
です。距離
の頂点同士を結ぶ辺の張り方
距離の頂点同士を結ぶ辺の張り方は、
通りです。今回は、全ての辺について、張る、張らないの2パターンを自由に選べます。
ということで、
通りの張り方が存在します。
ということで、の最大値を
として、
が答えとなります。