luogu P3389 高斯消元法

2021-08-15 10:06:47 字數 1260 閱讀 7551

給定乙個有n組方程的線性方程組。

每個方程的係數a1,a2…an以及常數項已給出。

對其求解,無唯一解則輸出」no solution「。

1≤n≤100,∣ai∣≤10^4,∣b∣≤10^4

高斯消元模板

這裡講的挺清楚的,

高斯消元其實就是加減加減的將係數消掉…

時間複雜度:o(n^3)

var

a:array [0..101,0..101] of double;

x:array [0..101] of double;

i,j,k,n:longint;

rp:double;

begin

readln(n);

for i:=1

to n do

begin

for j:=1

to n+1

doread(a[i,j]);

readln;

end;

for i:=1

to n do

begin

for j:=i to n do

if a[j,i]>a[i,i] then

begin

a[0]:=a[i];

a[i]:=a[j];

a[j]:=a[0];

end;

if a[i,i]=0

then

begin

writeln('no solution');

halt;

end;

for j:=i+1

to n do

begin

rp:=a[j,i]/a[i,i];

a[j,i]:=0;

for k:=i+1

to n+1

do a[j,k]:=a[i,k]*rp-a[j,k];

end;

end;

x[n]:=a[n,n+1]/a[n,n];

for i:=n-1

downto1do

begin

rp:=0;

for j:=i+1

to n do

rp:=rp+a[i,j]*x[j];

x[i]:=(a[i,n+1]-rp)/a[i,i];

end;

for i:=1

to n do writeln(x[i]:0:2);

end.

luogu P3389 模板 高斯消元法

高斯消元法 這裡的好像叫約旦消元?可以用來求線性方程組的唯一解 如果無解或有多解輸出 no solution 具體方法就是乙個乙個變數的掃,每次處理乙個變數的時候找出乙個係數不為 0 的方程,用這個方程把其他方程的 這個變數的係數給消掉 具體看 吧感覺不太能解釋清楚 然後每個變數處理完以後最後就剩那...

LG3389 模板 高斯消元法 高斯消元

lg3389 高斯消元,是用來解 n 元一次方程組的演算法,時間複雜度 o n 3 這樣就構造出了這個方程組的矩陣 目標就是把這個矩陣左邊 n times n 消為單位矩陣 mathrm includeusing namespace std void read int x x fh define m...

P3389 模板 高斯消元法(模板,高斯消元法)

思路 沒學線代的可以去學一下,很簡單的。直接看落谷的解析吧,感覺很好了。include include const double eps 1e 8 double b 110 110 int n int main for register int i 0 iint pivot i for regist...