No.1928 Make a Binary Tree
レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 42
作問者 :
harurun
/ テスター :
👑
Kazun
タグ : / 解いたユーザー数 42
作問者 :


問題文最終更新日: 2022-05-07 12:26:21
コンテスト終了後に★3.5に変更しました。
問題文
頂点の根付き木があり、頂点には の番号が付いています。根は頂点 です。
番目の辺は、頂点 と 頂点 を結びます。
あなたは以下の操作をいずれも好きな回数好きな順序で操作することができます。
- 操作A: ある頂点 を選ぶ。頂点 の親を頂点 、頂点 のある祖先を頂点 とする。 と を結ぶ辺を削除し、 と を結ぶ辺を追加する。
- 操作B: ある頂点 を選ぶ。頂点 の親を頂点 とする。 と を結ぶ辺を削除し、 を根とする部分木に含まれる辺と頂点をすべて削除する。
(削除した辺や頂点は使えません。また、 に親が存在しない場合は操作を行えません。)
あなたの目標は、これらの操作で頂点の個数が最大になるように頂点 を根とする二分木を作成することです。
作成した二分木の頂点の個数の最大値を求めてください。
▼頂点 の祖先とは?
頂点 と 根の最短パス上の頂点を頂点 の祖先と言います。入力
- 行目に頂点の個数 が与えられる
- 行目に と が空白区切りで与えられる
制約
- 入力はすべて整数である
- 与えられるグラフは木である
出力
答えを1行に出力してください。最後に改行してください。
サンプル
サンプル1
入力
4 1 2 1 3 3 4
出力
4
与えられた木は二分木です。よって何も操作しないときに最大です。
サンプル2
入力
4 1 2 1 3 1 4
出力
3
頂点 に操作Bを行うと二分木になり、これが最大です。
サンプル3
入力
5 1 2 2 3 2 4 2 5
出力
5
頂点 に操作Aを行い、祖先である頂点 と結ぶと最大になります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。