atcoder#AGC024D. [AGC024D] Isomorphism Freak
[AGC024D] Isomorphism Freak
配点 : 点
問題文
木 の頂点を何色かで塗り分ける方法が 良い彩色 であるとは、同じ色で塗られたどの つの頂点 に対しても、 を を根とする根付き木として見た木と を根とする根付き木として見た木が同型であることを指します。
また、 の カラフルさ とは、 の良い彩色で使われる色の種類数の最小値を指します。
頂点の木が与えられます。頂点には から までの番号がついており、 本目の辺は頂点 と頂点 を結んでいます。 この木に以下の操作を何度か繰り返し施し、木 を作ります。
- 新たな頂点を つ作る。現在の木の頂点をひとつ選び、その頂点と新しく作った頂点を辺で結ぶ。
としてありうるもののカラフルさの最小値を求めてください。 さらに、その最小値を達成する木 の葉(次数 の頂点)の数の最小値を出力してください。
ノート
を を根とする根付き木として見た木と を根とする根付き木として見た木が同型であるとは、 の頂点集合からそれ自身への全単射な写像 であって、以下を満たすものが存在することを指します。
- どの 頂点の組 についても、 辺があることと 辺があることが同値である
制約
- 与えられるグラフは木である
入力
入力は以下の形式で標準入力から与えられる。
:
出力
整数 つを空白区切りで出力せよ。 まずはじめに、作ることのできる木 の中での、カラフルさの最小値を出力せよ。 その後、その時の木の葉の数の最小値を出力せよ。
なお、この問題の制約の下で、出力すべき値は ビット符号付き整数に収まることが示せる。
5
1 2
2 3
3 4
3 5
2 4
頂点 を用意し、頂点 と結んだとき、頂点 を赤で、頂点 を青で塗る彩色は良い彩色です。 色で全頂点を塗る彩色は良い彩色ではないので、作った木のカラフルさは となることが分かります。 この場合が最適であり、葉は つあるので、 と を出力します。
8
1 2
2 3
4 3
5 4
6 7
6 8
3 6
3 4
10
1 2
2 3
3 4
4 5
5 6
6 7
3 8
5 9
3 10
4 6
13
5 6
6 4
2 8
4 7
8 9
3 2
10 4
11 10
2 4
13 10
1 8
12 1
4 12