atcoder#AGC039E. [AGC039E] Pairing Points
[AGC039E] Pairing Points
题目描述
円周上の一般の位置に相異なる 個の点が並んでおり、反時計回りに順に の番号が付けられています。 ただし、ここでいう一般の位置とは、どの相異なる 点 についても、線分 が一点で交わらないことをいいます。 また、 の行列 が与えられます。
円周上の 個の点を 個のペアに分ける方法であって、以下の条件をみたすようなものの個数を求めてください。
- すべてのペアに対してそのペアの つの点を結ぶ赤い線分をひいたとき、赤い部分が "木" になっている。
- すべてのペアについて、その端点を点 としたとき、 である。
より厳密には、赤い部分が "木" になっているとは、赤い部分全体が連結かつ無閉路になっていることを指します。
例えば、下図において、
- 左上の例は条件を満たします。
- 右上の例は、赤い部分に閉路が存在し、条件を満たしません。
- 左下の例は、赤い部分が非連結であり、条件を満たしません。
- 右下の例は、ペアに属さない頂点やペアに複数回含まれる頂点が存在し、条件を満たしません。
図: 条件を満たす例 (左上) とそうでない例 (それ以外)
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
円周上の 個の点を 個のペアに分ける方法であって、条件をみたすようなものの個数を出力せよ。 この制約下で、答えが ビット符号付整数の範囲内に収まることが証明できる。
题目大意
在一个圆上有 个点,其中有一些点对之间有连线,给出了连线的邻接矩阵 。
并且保证不存在三线共点的情况。
你需要选择其中 条线保留下来,使得每个点恰好连一条线,并且这 条线画出来后构成一棵树。
如图,左上角是合法的情况,右上角连出环了,左下角不是连通的,右下角不符合每个点恰好连一条线。
请求出不同的连线方案的数量。
- 。
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
提示
ノート
答えは、 個の点が一般の位置にある限り、その具体的な位置関係には依存しないことが証明できます。
制約
- は
0
または1
である - は
0
である - は整数である
Sample Explanation 1
, , の つの分け方が条件を満たします。