[AGC039E] Pairing Points

题意翻译

在一个圆上有 $2 N$ 个点,其中有一些点对之间有连线,给出了连线的邻接矩阵 $A_{i, j}$。 并且保证不存在三线共点的情况。 你需要选择其中 $N$ 条线保留下来,使得每个点恰好连一条线,并且这 $N$ 条线画出来后构成一棵树。 ![](https://cdn.luogu.com.cn/upload/image_hosting/6oec2jh9.png) 如图,左上角是合法的情况,右上角连出环了,左下角不是连通的,右下角不符合每个点恰好连一条线。 请求出不同的连线方案的数量。 - $1 \le N \le 20$。

题目描述

[problemUrl]: https://atcoder.jp/contests/agc039/tasks/agc039_e 円周上の一般の位置に相異なる $ 2N $ 個の点が並んでおり、反時計回りに順に $ 1,\dots,2N $ の番号が付けられています。 ただし、ここでいう一般の位置とは、どの相異なる $ 6 $ 点 $ U,\ V,\ W,\ X,\ Y,\ Z $ についても、線分 $ UV,\ WX,\ YZ $ が一点で交わらないことをいいます。 また、 $ 2N\ \times\ 2N $ の行列 $ A $ が与えられます。 円周上の $ 2N $ 個の点を $ N $ 個のペアに分ける方法であって、以下の条件をみたすようなものの個数を求めてください。 - すべてのペアに対してそのペアの $ 2 $ つの点を結ぶ赤い線分をひいたとき、赤い部分が "木" になっている。 - すべてのペアについて、その端点を点 $ P,\ Q $ としたとき、 $ A_{P,Q}\ =\ A_{Q,P}\ =\ 1 $ である。 より厳密には、赤い部分が "木" になっているとは、赤い部分全体が連結かつ無閉路になっていることを指します。 例えば、下図において、 - 左上の例は条件を満たします。 - 右上の例は、赤い部分に閉路が存在し、条件を満たしません。 - 左下の例は、赤い部分が非連結であり、条件を満たしません。 - 右下の例は、ペアに属さない頂点やペアに複数回含まれる頂点が存在し、条件を満たしません。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_agc039_e/c0b743c8aac73d041d43810449124e729c319bc8.png)図: 条件を満たす例 (左上) とそうでない例 (それ以外)

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_{1,1}...A_{1,2N} $ $ : $ $ A_{2N,1}...A_{2N,2N} $

输出格式


円周上の $ 2N $ 個の点を $ N $ 個のペアに分ける方法であって、条件をみたすようなものの個数を出力せよ。 この制約下で、答えが $ 64 $ ビット符号付整数の範囲内に収まることが証明できる。

输入输出样例

输入样例 #1

3
011111
101111
110111
111011
111101
111110

输出样例 #1

3

输入样例 #2

4
01111100
10011111
10011100
11101111
11110111
11111011
01011101
01011110

输出样例 #2

6

输入样例 #3

8
0111101111111111
1011101111111111
1101101111011101
1110111111111111
1111011111110111
0001101111111111
1111110111011111
1111111011111111
1111111101111111
1111111110111111
1101110111011111
1111111111101111
1111011111110111
1111111111111011
1101111111111101
1111111111111110

输出样例 #3

4762

说明

### ノート 答えは、$ 2N $ 個の点が一般の位置にある限り、その具体的な位置関係には依存しないことが証明できます。 ### 制約 - $ 1\ \leq\ N\ \leq\ 20 $ - $ A_{i,j} $ は `0` または `1` である - $ A_{i,i} $ は `0` である - $ A_{i,j}=A_{j,i} $ - $ N $ は整数である ### Sample Explanation 1 $ ((1,4),(2,6),(3,5)) $, $ ((1,3),(2,5),(4,6)) $, $ ((1,5),(2,4),(3,6)) $ の $ 3 $ つの分け方が条件を満たします。