Problem G : Nim †問題概要 †妙に複雑化された石とりゲーム. 解法 †flag[s,i] なる表を作って順番に埋めていく(動的計画法).ここに flag[s,i] は,石が s 個のときに,プレイヤー i がどのような手を打っても自分のチームが負かされるときに偽,それ以外のときに真をとる 2 値変数.更新規則は次にしたがう(M[i] はプレイヤー i がとることのできる最大の石数). flag[1,i] = false flag[s,i] = true iff ∃1≦k≦M[i] s.t. flag[s-k,i+1] = false 別解 †DFS + キャッシュでも構わない.[18 Dec 2004,泉] 議論・その他 †ファイルを添付する †nim.out.txt 1696件 [詳細] nim.txt 1706件 [詳細] tadokoro_WA_nim.cc 1312件 [詳細] hirano_nim.cpp 1411件 [詳細] taniguchi_nim.cpp 1276件 [詳細] izumi_G.cpp 1396件 [詳細] |