高斯消元
2017-04-14 16:03
134 查看
作用
高斯消元可以比较快速地求解多元线性方程,在OI中有许多的应用。实现
高斯消元的思想其实和我们以前求解二元、三元一次方程的想法一样,就是用消元的思想,先求出一定量的未知数,然后代回去求解,比如:4x+5y=14
x−y=−1
我们把这两个方程变成矩阵的形式:
[415−114−1]
把第一行减去4*第二行,就得到:
[019−118−1]
因为第一行只剩下了一个未知数,于是得到第二个未知数=2,然后代入第二行,得到第一个未知数为1。
一般的,对于n行n+1列的矩阵:
⎡⎣⎢⎢⎢⎢x1,1x2,1…xn,1x1,2x2,2…xn,2…………x1,n+1x2,n+1…xn,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,题解传送门。相关文章推荐
- poj 2947 Widget Factory (高斯消元)
- [省选前题目整理][POJ 1830]开关问题(XOR方程组高斯消元)
- poj1222 EXTENDED LIGHTS OUT(YY+高斯消元)
- 有唯一解的高斯消元模板
- ZOJ 3645 BiliBili 高斯消元 难度:1
- poj 2065 SETI(高斯消元 解同于方程组)
- Poj 2065 SETI (高斯消元)
- HYSBZ 1013 球形空间产生器sphere(高斯消元)
- POJ 2947 Widget Factory (高斯消元)
- HDOJ Lanterns 3364【高斯消元求自由变元】
- hiho一下第56周 高斯消元
- HDU 3915 Game(拆位,高斯消元)
- poj 2947 Widget Factory (高斯消元)
- POJ2065 SETI 高斯消元
- hihoCoder 1195 高斯消元.一
- POJ 1487:Single-Player Games 浮点数高斯消元
- 【高斯消元】BZOJ 1770: [Usaco2009 Nov]lights 燈
- 【高斯消元】整数高斯消元模板
- poj2947 高斯消元
- HDOJ 2262 Where is the canteen (高斯消元 + bfs)