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

    题目大意:

    题目链接:https://www.luogu.org/problem/P3389
    给出nn元一次方程组,若有唯一解则输出解。


    思路:

    高斯消元模板题。


    代码:

    #include <cmath>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    
    const int N=110;
    double a[N][N],b[N];
    bool flag;
    int n;
    
    int main()
    {
    	scanf("%d",&n);
    	for (int i=1;i<=n;i++)
    	{
    		for (int j=1;j<=n;j++)
    			scanf("%lf",&a[i][j]);
    		scanf("%lf",&b[i]);
    	}
    	for (int i=1;i<=n;i++)
    	{
    		for (int j=i;j<=n;j++)
    			if (fabs(a[j][i])>1e-8)
    			{
    				for (int k=1;k<=n;k++)
    					swap(a[j][k],a[i][k]);
    				swap(b[j],b[i]);
    				break;
    			}
    		for (int j=1;j<=n;j++)
    			if (i!=j)
    			{
    				double rate=a[j][i]/a[i][i];
    				for (int k=i;k<=n;k++)
    					a[j][k]-=a[i][k]*rate;
    				b[j]-=b[i]*rate;
    			}
    	}
    	for (int i=1;i<=n;i++)
    	{
    		flag=1;
    		for (int j=1;j<=n;j++)
    			if (a[i][j])
    			{
    				flag=0;
    				break;
    			}
    		if (flag) return !printf("No Solution");
    	}
    	for (int i=1;i<=n;i++)
    		printf("%0.2lf
    ",b[i]/a[i][i]);
    	return 0;
    }
    
  • 相关阅读:
    多线程
    python 进程间通信
    python 生产者消费者模型
    多线程锁
    io多路复用(三)
    div 加滚动条的方法
    10矩形覆盖
    11.二进制中1的个数
    12数值的整数次方
    9 变态跳台阶
  • 原文地址:https://www.cnblogs.com/hello-tomorrow/p/11998054.html
Copyright © 2011-2022 走看看