校赛 构造行列式为指定值
题目大意
构造一个 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号