atcoder#AGC033C. [AGC033C] Removing Coins

[AGC033C] Removing Coins

题目描述

高橋君と青木君は木を用いてゲームをすることにしました。 ゲームに用いる木は N N 頂点からなり、各頂点には 1 1 から N N の番号が割り振られています。 また、N1 N-1 本の辺のうち、 i i 本目の辺は頂点 ai a_i と頂点 bi b_i を結んでいます。

ゲーム開始時、各頂点にはコインが一枚ずつ置いてあります。 高橋君と青木君は高橋君から始めて以下の操作を交互に行い、操作を行えなくなった方が負けになります。

  • コインが置いてある頂点を一つ選び、その頂点 v v に置いてあるコインをすべて取り除く。
  • その後、木上に残っているコインをすべて、今置いてある頂点に隣接する頂点のうち v v に一番近い頂点に移動させる。

つまり、木上にコインが残っていない状態で手番となった人の負けです。 二人が最適に行動したとき、どちらが勝つか求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N a1 a_1 b1 b_1 a2 a_2 b2 b_2 : aN1 a_{N-1} bN1 b_{N-1}

输出格式

先手の高橋君が勝つなら First を、後手の青木君が勝つなら Second を出力せよ。

题目大意

高桥和青木在树上玩游戏。 这棵树有 N个顶点,编号为1到N,N-1边的第i个连接顶点a_i和顶点b_i。
游戏开始时,每个顶点都有一个硬币。从高桥开始,他和青木将交替执行以下操作:
选择一个顶点v,v可以有1个或多个硬币。从v中移除所有硬币,之后,将树上所有的硬币移动到与硬币相邻的顶点中最接近v的顶点。
玩不下去的人就输了。也就是说,当树上没有剩余的硬币时轮到玩家的玩家会输掉游戏。当两个玩家都以最佳策略来玩,谁会赢呢? 如果高桥赢,请输出 First,反之则输出 Second

3
1 2
2 3
First
6
1 2
2 3
2 4
4 6
5 6
Second
7
1 7
7 4
3 4
7 5
6 3
2 1
First

提示

制約

  • 1  N  2 × 105 1\ ≦\ N\ ≦\ 2\ \times\ 10^5
  • 1  ai, bi  N 1\ ≦\ a_i,\ b_i\ ≦\ N
  • ai  bi a_i\ \neq\ b_i
  • 入力で与えられるグラフは木である。

Sample Explanation 1

ゲームは例えば以下のように進行します。 - 高橋君が頂点 1 1 からコインを取り除く。操作後は、頂点 1 1 に一つ、頂点 2 2 に一つコインがある。 - 青木君が頂点 2 2 からコインを取り除く。操作後は、頂点 2 2 に一つコインがある。 - 高橋君が頂点 2 2 からコインを取り除く。操作後は、木上にコインは残っていない。 - 青木君は木上にコインがない状態で手番となってしまったので、負けとなる。