洛谷P3389 【模板】高斯消元法

来源:互联网 发布:钥匙包 淘宝 编辑:程序博客网 时间:2024/06/05 18:43
#include<bits/stdc++.h>using namespace std;int n;double a[110][110],ans[110];int main() {    scanf("%d",&n);    for(int i=0;i<n;i++) {        for(int j=0;j<=n;j++) {            scanf("%lf",&a[i][j]);        }    }    for(int i=0;i<n;i++) {        int p;        for(p=i;p<n;p++) {            if(a[p][i]) break;        }        if(p==n) continue;        swap(a[p],a[i]);        for(int j=i+1;j<n;j++) {            double d=a[j][i]/a[i][i];p=0;            for(int k=i;k<=n;k++) {                a[j][k]-=d*a[i][k];                if(a[j][k]) p=1;            }            if(!p) {                puts("No Solution"); return 0;            }        }    }    for(int i=n-1;i>=0;i--) {        ans[i]=a[i][n];        for(int j=n-1;j>i;j--) {            ans[i]-=a[i][j]*ans[j];        }        ans[i]/=a[i][i];    }    for(int i=0;i<n;i++) {        printf("%.2lf\n",ans[i]);    }}


原创粉丝点击