atcoder#AGC039E. [AGC039E] Pairing Points
[AGC039E] Pairing Points
配点 : 点
問題文
円周上の一般の位置に相異なる 個の点が並んでおり、反時計回りに順に の番号が付けられています。 ただし、ここでいう一般の位置とは、どの相異なる 点 についても、線分 が一点で交わらないことをいいます。 また、 の行列 が与えられます。
円周上の 個の点を 個のペアに分ける方法であって、以下の条件をみたすようなものの個数を求めてください。
- すべてのペアに対してそのペアの つの点を結ぶ赤い線分をひいたとき、赤い部分が "木" になっている。
- すべてのペアについて、その端点を点 としたとき、 である。
より厳密には、赤い部分が "木" になっているとは、赤い部分全体が連結かつ無閉路になっていることを指します。
例えば、下図において、
- 左上の例は条件を満たします。
- 右上の例は、赤い部分に閉路が存在し、条件を満たしません。
- 左下の例は、赤い部分が非連結であり、条件を満たしません。
- 右下の例は、ペアに属さない頂点やペアに複数回含まれる頂点が存在し、条件を満たしません。
図: 条件を満たす例 (左上) とそうでない例 (それ以外)
ノート
答えは、 個の点が一般の位置にある限り、その具体的な位置関係には依存しないことが証明できます。
制約
- は
0
または1
である - は
0
である - は整数である
入力
入力は以下の形式で標準入力から与えられる。
出力
円周上の 個の点を 個のペアに分ける方法であって、条件をみたすようなものの個数を出力せよ。 この制約下で、答えが ビット符号付整数の範囲内に収まることが証明できる。
3
011111
101111
110111
111011
111101
111110
3
, , の つの分け方が条件を満たします。
4
01111100
10011111
10011100
11101111
11110111
11111011
01011101
01011110
6
8
0111101111111111
1011101111111111
1101101111011101
1110111111111111
1111011111110111
0001101111111111
1111110111011111
1111111011111111
1111111101111111
1111111110111111
1101110111011111
1111111111101111
1111011111110111
1111111111111011
1101111111111101
1111111111111110
4762