传送门
高斯消元模板题
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdlib>
using namespace std;
int n;
double x,f[15],a[15][15];
int main(){
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%lf",&f[i]);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++){
scanf("%lf",&x);
a[i][j]=2*(x-f[j]);
a[i][n+1]+=x*x-f[j]*f[j];
}
for (int i=1;i<=n;i++){
int k=i;
for (int j=i+1;j<=n;j++)
if (fabs(a[j][i]>fabs(a[k][i]))) k=j;
if (k!=i) swap(a[k],a[i]);
for (int j=i+1;j<=n;j++){
x=-a[j][i]/a[i][i];
for (k=1;k<=n+1;k++)
a[j][k]+=x*a[i][k];
}
}
for (int i=n;i>=1;i--){
for (int j=i+1;j<=n;j++) a[i][n+1]-=a[j][n+1]*a[i][j];
a[i][n+1]/=a[i][i];
}
for (int i=1;i<=n;i++){
printf("%.3lf",a[i][n+1]);
if (i!=n) printf(" ");
}
}