校赛 构造行列式为指定值

题目大意

构造一个 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,而行列式不变。
这样就做完了。

posted @ 2025-05-28 22:06  哼唧昂叽  阅读(7)  评论(0)    收藏  举报