問題概要
$N$ 頂点の木と 2 種類のトークンを使った 2 人ゲームをする.プレイヤーを A, B として,A は赤いトークンを,B は青いトークンを使う.
木の頂点は $0$ から $N - 1$ で番号付けられている.ゲームの初期状態は 3 つの配列 $\mathit{ tree }$, $A$, $B$ により与えられる.$\mathit{ tree }$ は木の形を表し,$i$ ( $1 \leq i \leq N - 1$ ) について,2 頂点 $i$, $\mathit{ tree }_{ i - 1 }$ 間に辺があることを表す.$A$ は赤いトークンの初期位置を,$B$ は青いトークンの初期位置を表す( $a \in A$ なる頂点 $a$ に赤いトークンがある.$B$ と青いトークンについても同様).
ゲームは Round と呼ばれる工程の繰り返しからなる.1 回のラウンドは,
- A が赤いトークンをいくつか選び,それぞれ隣接する頂点に移動させる
- B が青いトークンをいくつか選び,それぞれ隣接する頂点に移動させる
という 2 つのフェーズからなる.
Round 終了後に,2 種類のトークンが存在する頂点が 1 つでもあれば,B の勝利となる.
B はできるだけ少ない Round 数で勝ちたいと思っていて,A はできるだけ多くの Round をプレイしたいと思っている.両者が最善を尽くすとき,プレイされる Round 数を求めよ.B が有限の Round 数で勝利できることは保証されている.
続きを読む