atcoder#ARC088D. [ARC088F] Christmas Tree
[ARC088F] Christmas Tree
题目描述
高橋君は、AtCoder 社のクリスマスパーティーに向けて、クリスマスツリーを作ることにしました。
クリスマスツリーとは 頂点に から まで番号付けられた 頂点 辺の木で、 本目の辺は頂点 と頂点 を結んでいます。
高橋君は、以下の方法でクリスマスツリーを作りたいです。
- つの非負整数 を指定する。
- 長さ 以下のクリスマスパスを 個用意する。ただし、長さ のクリスマスパスとは、 頂点 辺からなるグラフであって、頂点に から までの番号を適切につければ、 本目の辺が頂点 と頂点 を結んでいるようにできるものを指す。
- 以下の操作を、全体が連結になるまで繰り返す。
- 異なる連結成分に属する 頂点 をとる。頂点 と頂点 をまとめて つの頂点にする。より正確には、頂点 に接続するすべての辺 について辺 を追加したあと、頂点 と、 に接続する辺をすべて削除する。
- 出来上がった木の各頂点に、適当な番号をつける。
高橋君は、クリスマスツリーを作ることのできるような組 のうち、辞書順最小のものを求めたいです。 すなわち、 の最小値を求め、 の最小値を達成するという条件のもとで の最小値も求めたいです。
高橋君にかわって、この問題を解いてください。
输入格式
入力は以下の形式で標準入力から与えられる。
:
输出格式
辞書順最小の に対し、 を空白区切りで出力せよ。
题目大意
给定一棵 个节点的树。用如下方法生成一棵与其相同的树:
- 首先生成 个边数均不超过 的链。
- 重复以下操作直到所有的点连通:
- 选择两个当前属于不同连通块的点,将这两个点合并为一个点,所有原来与这两个点中的至少一个点有边的点与这个新点有边。
- 将点重新标号。
求出能够生成给定树的最小的 值,在最小化 的基础上最小化 值。
对于 的数据,。
【输入格式】
第一行输入 ,随后 行每行两个整数描述一条边。
【输出格式】
输出一行两个整数,题目所求的 和 。
7
1 2
2 3
2 4
4 5
4 6
6 7
3 2
8
1 2
2 3
3 4
4 5
5 6
5 7
5 8
2 5
10
1 2
2 3
3 4
2 5
6 5
6 7
7 8
5 9
10 5
3 4
提示
制約
- 与えられるグラフは木である
Sample Explanation 1
下の図のような方法で、クリスマスツリーを作ることができます。 ![](https://img.atcoder.jp/arc088/96f78221624d6a13628f6052f5db697d.png)