校賽 構造行列式為指定值
題目大意
構造一個 300*300 的 01 方陣,使得行列式為指定整數 M。
\(0\le M\le 1e9\)
題解
比較巧妙的構造題。
如果有兩個矩陣 A,B,那么構造出行列式為 |A||B| 的還是很簡單的;但是構造出 |A|+|B| 就很困難了。
切入口是行列式的初等變換不變的性質。
考慮:
1??
1?
N
這樣怎么不斷初等變換得到 01 矩陣。
可以考慮這樣:
1 x x
1 N/2
N
這樣第三行減兩倍第二行得到:
1 x x
1 N/2
-2 N%2
這里出現 -2 了。
但我們可以通過這樣一個變換:
1 1
???????
???????
1???x???
這個矩陣行列式等于:
???????
???????
???x-1???
反過來,從下面到上面,可以多一行一列讓某個位置值+1,而行列式不變。
這樣就做完了。

浙公網安備 33010602011771號