https://www.luogu.org/problemnew/show/P3389
高斯消元用来解决n元一次方程组,复杂度为n ^ 3
流程和初中学的那个加减消元法差不多
首先我们存储方程的各项系数(就相当于把向量存下来)
然后我们依次消去每项,具体的,把每次没有消掉的那一项(设为k)的系数最大值的那个方程的系数变为1,然后用这个方程的系数依次减去每个方程,让其他方程的k的系数为0
做到最后,你就获得了一个右上角矩阵,解出最低下的一项,依次回代即可
几个细节:
1.取系数最大值是为了防止精度误差
2.无解的情况就是一个方程的未知数系数为0但结果不为0;多解就是像00000这样的一列有多个
#include #include #include #include #include
View Code