luogu 3389 模板高斯消元法

Posted guangheli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu 3389 模板高斯消元法相关的知识,希望对你有一定的参考价值。

#include <bits/stdc++.h>  
#define N 104 
#define setIO(s) freopen(s".in","r",stdin) 
using namespace std;    
int n; 
double g[N][N];      
void Gauss() 
 
    int i,j,k,now;   
    for(i=1;i<=n;++i) 
    
        now=i; 
        for(j=i+1;j<=n;++j) if(fabs(g[j][i])>fabs(g[now][i])) now=j;   
        for(j=1;j<=n+1;++j) swap(g[now][j],g[i][j]);      
        if(g[i][i]==0) 
         
            printf("No Solution\n"); 
            exit(0); 
         
        for(j=i+1;j<=n+1;++j) g[i][j]/=g[i][i];                                                                
        g[i][i]=1; 
        for(j=i+1;j<=n;++j) // 枚举第 j 行
         
            double div=g[j][i];   
            for(k=i+1;k<=n+1;++k) 
                g[j][k]-=div*g[i][k]; 
            g[j][i]=0;          
        
      
    for(i=n;i>=1;--i) 
    
        for(j=i+1;j<=n;++j) 
        
            g[i][n+1]-=g[i][j]*g[j][n+1];                   
        
    

int main() 
 
    int i,j; 
    // setIO("input");  
    scanf("%d",&n);  
    for(i=1;i<=n;++i) 
    
        for(j=1;j<=n+1;++j) scanf("%lf",&g[i][j]); 
     
    Gauss();    
    for(i=1;i<=n;++i) printf("%.2f\n",g[i][n+1]);   
    return 0; 

  

非常好理解~

Code: 

 

以上是关于luogu 3389 模板高斯消元法的主要内容,如果未能解决你的问题,请参考以下文章

luogu 3389 模板高斯消元法

题解 P3389 模板高斯消元法

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

P3389 模板高斯消元法

P3389 模板高斯消元法

洛谷.3389.[模板]高斯消元法