高斯消元

作用

高斯消元可以比较快速地求解多元线性方程,在OI中有许多的应用。

实现

高斯消元的思想其实和我们以前求解二元、三元一次方程的想法一样,就是用消元的思想,先求出一定量的未知数,然后代回去求解,比如:
4x+5y=14
xy=1
我们把这两个方程变成矩阵的形式:
[4151141]
把第一行减去4*第二行,就得到:
[0191181]
因为第一行只剩下了一个未知数,于是得到第二个未知数=2,然后代入第二行,得到第一个未知数为1。

一般的,对于n行n+1列的矩阵:
x1,1x2,1xn,1x1,2x2,2xn,2x1,n+1x2,n+1xn,n+1
先找出第一列不为0的i,找到后把第i行交换到第1行(为了方便写程序),如果找不到则无解(或任意解),将2~n行均减去适当倍数的第1行,使2~n行的第1列变成0。
然后从2~n中找出第2列不为0的i,找到后把第i行交换到第2行(同理,找不到就无解),将3~n行均减去适当倍数的第2行,使3~n行的第2列变成0。
……
最后检查第n行的第n列是否为0,如果为0,则无解。否则先算出第n个未知数,然后代回第n-1行,算出第n-1个未知数,以此类推算出所有未知数。

效率

不难看出效率为 O(n3) ,中规中矩。

模板题

BZOJ1013题解传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值