• 【luogu P3389 高斯消元法】 模板


    题目链接:

    gauss消元求线性方程组的解。

    这道题对于多解和无解都输出No solution

     1 #include <algorithm>
     2 #include <cstdio>
     3 #include <cmath>
     4 #include <iostream>
     5 using namespace std;
     6 const int maxn = 200;
     7 const double eps = 1e-7;
     8 double A[maxn][maxn], ans[maxn];
     9 int n;
    10 int main() 
    11 {
    12     scanf("%d",&n);
    13     for(int i = 1; i <= n; i++)
    14     for(int j = 1; j <= n+1; j++)
    15     scanf("%lf", &A[i][j]);
    16     for(int i = 1; i <= n; i++) 
    17     {
    18         int p = i;
    19         for(int j = i + 1; j <= n; j++)
    20           if(fabs(A[j][i]) > fabs(A[p][i])) p = j;
    21         for(int j = 1; j <= n + 1; j++) swap(A[p][j],A[i][j]);
    22           
    23         if(fabs(A[i][i]) < eps) continue;
    24         double div = A[i][i];
    25         for(int j = 1; j <= n + 1; j++) A[i][j]/=div;
    26         for(int j = 1; j <= n; j++)
    27         {
    28             if(i != j)
    29             {
    30                 double div = A[j][i];
    31                 for(int k = 1; k <= n + 1; k++) A[j][k] -= A[i][k]*div;
    32             }
    33         }
    34     }
    35     int NoSolution = 0, ManySolution = 0;
    36     for(int i = 1; i <= n; i++)
    37     {
    38         int Nonum = 0, Manynum = 0;
    39         for(int j = 1; j <= n + 1 && fabs(A[i][j]) < eps; j++)
    40         Nonum++,Manynum++;
    41         if(Manynum > n) ManySolution = 1;
    42         if(Nonum == n) NoSolution = 1;
    43     }
    44         if(NoSolution) {printf("No Solution");return 0;}
    45         if(ManySolution) {printf("No Solution");return 0;}
    46     for(int i = n; i >= 1; i--)
    47     {
    48         ans[i] = A[i][n+1];
    49         for(int j = i - 1; j >= 1; j--)
    50         {
    51             A[j][n+1] -= ans[i] * A[j][i];
    52             A[j][i] = 0;
    53         }
    54     }
    55     for(int i = 1; i <= n; i++)
    56     printf("%.2lf
    ",ans[i] + eps);
    57     return 0;
    58 }

    隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。

    隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。

  • 相关阅读:
    基于Redis主从复制读写分离架构的Session共享(Windows Server)
    第3章 线性表
    第2章 算法
    python中统计计数的几种方法和Counter的介绍
    Linux关于文件的权限笔记
    线程同步与互斥(线程安全)
    Python csv模块的使用
    Python 源码分析:queue 队列模块
    Java锁,真的有这么复杂吗?
    1537 学生干部虚基类
  • 原文地址:https://www.cnblogs.com/MisakaAzusa/p/8950740.html
Copyright © 2020-2023  润新知