1. 程式人生 > 其它 >IO與NIO的區別

IO與NIO的區別

先發出來,防止後期咕掉

矩陣

行列式

\(\;\)
轉置後行列式不變(\(A_{i,j}=A'_{j,i}\))
一行加上另一行的若干倍,行列式不變
交換兩行,行列式變為原先的相反數
\(\;\)
範德蒙德行列式

\[ D_n = \begin{vmatrix} 1 & 1 & 1 & \cdots & 1 \\ x_1 & x_2 & x_3 & \cdots & x_n \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ x_1^{n-1} & x_2^{n-1} & x_3^{n-1} & \cdots & x_n^{n-1} \\ \end{vmatrix} = \prod_{1\leq i<j\leq n} (x_j-x_i) \]

證明:首先每一行加上上一行的\(-x_n\)


這樣使得最後一列除了第一行是1以外,其餘都變成0

\[D_n=(-1)^{n+1}\times (x_1-x_n)\times (x_2-x_n)\times ... \times (x_{n-1}-x_n) D_{n-1} \]\[=\prod_{1\leq i<j\leq n} (x_j-x_i) \]

NOI2021 Day1 T2

\(\;\)
\(k=2\)
一個點不能同時匹配兩個點,且答案和逆序對的奇偶性有關,聯想到行列式
直接求鄰接矩陣的行列式就是答案
\(\;\)
\(k>2\)
對於兩條路徑,容易發現,它們交點的個數只與起點和終點有關,與中間怎麼走沒有關係(這個可以記一下)
所以假如說求出來了\(f_{i,j}\)

表示從\(s_i\)走到\(t_j\)的方案數
也是讓一個\(i\)唯一匹配一個\(j\)
只需要對\(f\)求行列式
\(\;\)
等等,好像有一些不對勁。這樣並不保證兩條路徑不重複經過同一個點啊。
想想發現,假如我們把路徑翻轉過來,即:
原先是\(s_i -> t_i, s_j -> t_j\)
現在是\(s_i -> t_j, s_j -> t_i\)
且是一奇一偶,那麼在計算行列式的時候就會把這兩種都不合法的方案抵消掉