#P10216. 【模板】Pfaffian

【模板】Pfaffian

背景

称一个长度为 2n2n 的排列 π\pi 是完美匹配,当且仅当其满足

  • ∀1≤i≤n,π2i−1<π2i\forall 1\le i\le n,\pi_{2i-1}<\pi_{2i}
  • ∀1≤i<n,π2i−1<π2i+1\forall 1\le i< n,\pi_{2i-1}<\pi_{2i+1}

记 inv π\textup{inv }\pi 表示 π\pi 的逆序对数,sgn π=(−1)inv π\textup{sgn }\pi=(-1)^{\textup{inv }\pi},M2n\mathfrak{M}_{2n} 表示全体长度为 2n2n 的完美匹配构成的集合。

令 A=(ai,j)1≤i<j≤2n\mathbf{A}=(a_{i,j})_{1\le i<j\le 2n} 是一个反对称矩阵,定义 A\mathbf{A} 的 Pfaffian\text{Pfaffian} 为

$$\textup{Pf}(\mathbf{A})=\sum\limits_{\pi\in\mathfrak{M}_{2n}}(\textup{sgn }\pi)\prod\limits_{i=1}^{n}a_{\pi(2i-1),\pi(2i)}$$

题目描述

给定偶数 nn 与反对称矩阵 A=(ai,j)1≤i<j≤n\mathbf{A}=(a_{i,j})_{1\le i<j\le n},求 Pf(A)\textup{Pf}(\mathbf{A}) 对 109+710^9+7 取模的结果。

输入格式

第一行一个正整数 nn,保证 nn 是偶数。

接下来 n−1n-1 行,第 ii 行有 n−in-i 个非负整数,其中第 jj 个整数表示 ai,i+ja_{i,i+j}。

输出格式

一行一个非负整数,表示答案。

4
1 2 3
4 5
6
8

提示

对于 30%30\% 的数据,n≤10n\le 10。

对于 100%100\% 的数据,2≤n≤5002\leq n\le 500,0≤ai,j<109+70\le a_{i,j}<10^9+7。