治疗之雨

学习了一种新的消元方法。

一些题目在主对角线上的元素行数不多(假设有k斜行),可以优化。

如下面,有一矩阵:

1 1 0 0 0 0
1 1 1 0 0 0
1 1 1 1 0 0
1 1 1 1 1 0
1 1 1 1 1 1
1 1 1 1 1 1

第一行消完后变成:

1 1 0 0 0 0
0 1 1 0 0 0
0 1 1 1 0 0
0 1 1 1 1 0
0 1 1 1 1 1
0 1 1 1 1 1

第二行消完后变成:

1 1 0 0 0 0
0 1 1 0 0 0
0 0 1 1 0 0
0 0 1 1 1 0
0 0 1 1 1 1
0 0 1 1 1 1

实际上,每次只需要消两行,所以时间复杂度为O(n^2)

如果主对角线斜行上/下分别有a/b个元素,则消元复杂度为O(max(n^2,min(a,b)^2*n))的。

回到这道题。

原文地址:https://www.cnblogs.com/cszmc2004/p/13021482.html