关于 hack

P2455 [SDOI2006] 线性方程组

Kyo1337 @ 2023-04-17 19:02:00

首先是 @lgvc 的 hack

3
1 2 3 4
4 5 6 7
7 8 9 10

可以说是一个确实的无唯一解的方程且没有被一些题解判断出来。

再说这个题的题解。甚至这里还有使用随机化过题的题解,似乎随机化并不是高斯 / 高斯约旦消元判断解的情况的一部分。

个人认为大部分 hack 指向的事实其实是,我们不能用同一个方程去消多个元,但是如果我们因此只允许 [i, n] 中的方程消除元 x_i,又会导致又可能只有先前一个 a_{k,k} = 0,k<i 的方程 k 使得 a_{k,i} 有值从而无法正确处理。

所以一种正确的做法应该类似最后一篇题解那样,把这样的尚未用来消除任何元但是编号更小的行也纳入考虑。个人采用了一个 vis 数组来记录行的使用。

最后扫描一遍无解再扫描一遍无穷多解即可。当然应该有很多其他做法也是对的。


by Kyo1337 @ 2023-04-17 19:03:38

关于随机化,个人认为不符合模板题的定位,毕竟这题现在作为省选真题的价值也许是较少的。


by Tiga_Zhou @ 2023-04-30 16:46:16

@dottle @Chen_zhe


by Tiga_Zhou @ 2023-04-30 16:49:02

请求添加数据


by Tiga_Zhou @ 2023-05-02 15:22:25

前几篇题解都过不了这个hack


|