zoukankan      html  css  js  c++  java
  • P3389 【模板】高斯消元法

    P3389 【模板】高斯消元法

    注意每次选择当前列绝对值最大元素去消除其他的行是误差尽可能的小,

    本题特有的性质是,bi全都大于0,所以如果出现对角线上为0的情况是不合理的  0x = bi

    #include<bits/stdc++.h>
    using namespace std;
    #define eps 1e-8
    #define maxn 123
    double A[maxn][maxn];
    int n,tp;
    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++)
        {
            tp=i;
            for(int j=i; j<n; j++)
                if(fabs(A[j][i])-fabs(A[tp][i])>eps)tp=j;
            if(tp!=i)
                for(int j=0; j<=n; j++)
                    swap(A[i][j],A[tp][j]);
            if(fabs(A[i][i])<=eps)
            {
                printf("No Solution
    ");
                return 0;
            }
            for(int j=i+1; j<=n; j++)
                A[i][j]/=A[i][i];
            for(int j=0; j<n; j++)
                if(i!=j)
                    for(int k=i+1; k<=n; k++)
                        A[j][k]-=A[j][i]*A[i][k];
        }
        for(int i=0; i<n; i++)printf("%.2lf
    ",A[i][n]);
        return 0;
    }
    

      

  • 相关阅读:
    [Apio2014]回文串
    省队集训day6 C
    省队集训day6 B
    省队集训Day3 light
    省队集训Day3 tree
    多串匹配
    ubuntu卸载福昕阅读器
    greenlet
    python multithread task_done
    mysql参数调优
  • 原文地址:https://www.cnblogs.com/SDUTNING/p/10259877.html
Copyright © 2011-2022 走看看