zoukankan      html  css  js  c++  java
  • bzoj1013高斯消元

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1013

    似乎是很明显的高斯消元;

    第一次写高斯消元。

    代码如下:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #define eps 1e-6;
    using namespace std;
    int n;
    double a[15][15],d[15];
    void gauss()
    {
        for(int i=1;i<=n;i++)
        {
            int t=i;
            for(int j=i+1;j<=n;j++)
                if(fabs(a[j][i])>fabs(a[t][i]))t=j;
            if(t!=i)for(int j=1;j<=n+1;j++)
                        swap(a[i][j],a[t][j]);//令第i行代表第i个未知数 
            double tmp=a[i][i];//!!!不能在下一行直接写 a[i][j]/=a[i][i],因为a[i][i]在中途被改 
            for(int j=1;j<=n+1;j++)a[i][j]/=tmp;//系数化为1 
            for(int j=1;j<=n;j++)
            {
                if(i==j)continue;
                double x=a[j][i];
                for(int k=1;k<=n+1;k++)
                    a[j][k]-=x*a[i][k];
            }
        }
        for(int i=1;i<n;i++)
            printf("%.3lf ",a[i][n+1]);
        printf("%.3lf
    ",a[n][n+1]);
    }
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%lf",&d[i]);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            {
                double x;
                scanf("%lf",&x);
                a[i][j]=2*(x-d[j]);
                a[i][n+1]+=x*x-d[j]*d[j];
            }
        gauss();
        return 0;
    }
  • 相关阅读:
    VUE 路由
    JS小表达式
    JS正则表达式
    react案例—实现组件之间的通信
    React脚手架搭建
    react属性三ref
    react属性二props
    java多线程2
    jvm小结2
    spark小结3
  • 原文地址:https://www.cnblogs.com/Zinn/p/8982574.html
Copyright © 2011-2022 走看看