atcoder#ABC291D. [ABC291D] Flip Cards
[ABC291D] Flip Cards
题目描述
から までの番号がついた 枚のカードが一列に並んでいて、各 に対してカード とカード が隣り合っています。 カード の表には が、裏には が書かれており、最初全てのカードは表を向いています。
今から、 枚のカードのうち好きな枚数 ( 枚でも良い) を選んで裏返すことを考えます。 裏返すカードの選び方は 通りありますが、そのうち以下の条件を満たすものの数を で割った余りを求めてください。
- 選んだカードを裏返した後、どの隣り合う 枚のカードについても、向いている面に書かれた数が相異なる。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
答えを整数として出力せよ。
题目大意
- 有 个卡片排成一排,编号为 。
- 第 个卡片的正面是 ,反面是 。
- 现在你可以将每个卡片翻到正面或反面,使相邻两个卡片上的数字互不相同。
- 求方案数对 取模。
- ,
3
1 2
4 2
3 4
4
4
1 5
2 6
3 7
4 8
16
8
877914575 602436426
861648772 623690081
476190629 262703497
971407775 628894325
822804784 450968417
161735902 822804784
161735902 822804784
822804784 161735902
48
提示
制約
- 入力は全て整数
Sample Explanation 1
裏返すカードの番号の集合を とします。 例えば を選ぶと、向いている面に書かれた数はカード から順に となるため条件を満たします。 一方 を選ぶと、向いている面に書かれた数はカード から順に となり、カード とカード の数が一致するため条件を満たしません。 条件を満たす は の 通りです。