Coloring Dominoes
ARC081-D "Coloring Dominoes"
提出コード
考察
以下,のドミノを縦ドミノ, のドミノを横ドミノと呼びます.
問題の性質より,ドミノの並べ方は,縦ドミノそのもの( 以下 ),または横ドミノを縦に並べたもの( 以下 )のいずれかを横に並べていくことになります.
(ちなみに,vertical:垂直,horizontal:水平から名前を付けました)
ドミノの色の塗り方は,基準となるドミノがかか,そしてその左隣がかか,で4通りあります.
以下の場合分けでは,例えばあるドミノがで,左隣がのとき,のように書くとします.
(i) のとき
が連続しているので,色の塗り方は2通りです.
(左隣のの色以外を選ぶ2通りになります.)
(ii) のとき
に対して,の色の塗り方は2通りです.
(左隣のの色以外の2色のうち,どちらを上に塗るかで2!=2通りになります.)
(iii) のとき
に対して,の塗り方は1通りです.
(既に左隣で2色使ってしまっているためです.)
(iv) のとき
に対して,の塗り方は3通りです.
(これは説明がめんどいので省略...)
また,に対してであれば番目はで,そうでなければ番目から番目にかけてがであることがわかります.
1つ前のドミノがかかどちらかを持っておき,上の場合分けの数字をかけ算しながらmod をとっていくことでで解けます.
感想
久しぶりにこれぐらいのdiff(これは1165)の問題をやりました.
記事の更新も久しぶり.
そこまで難しくないという気持ちがあって,最近のdiffに換算したら700ぐらいな気がします.
一発ACできてよかった.