zoukankan      html  css  js  c++  java
  • 【BZOJ】1013 [JSOI2008]球形空间产生器sphere(高斯消元)

    题目

    传送门:QWQ

    分析

    高斯消元就是个大暴力。。。。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 105;
    const double eps = 1e-7;
    int n;
    double a[maxn][maxn], b[maxn][maxn] ,c[maxn];
    double sqr(double a) {return a*a;}
    void Gauss() {
        int n; scanf("%d",&n);
        for(int i=1;i<=n+1;i++)
            for(int j=1;j<=n;j++)
                scanf("%lf",&a[i][j]);
        for(int i=1;i<=n;i++) {
            for(int j=1;j<=n;j++) {
                b[i][j] = 2* (a[i][j] - a[i+1][j]);
                c[i] += sqr(a[i][j]) - sqr(a[i+1][j]);
            }
        }
        for(int i=1;i<=n;i++) {
            for(int j=i;j<=n;j++) {
                if(fabs(b[i][j]) > eps) {
                    for(int k=1;k<=n;k++) swap(b[i][k], b[j][k]);
                    swap(c[i],c[j]);
                }
            }
            for(int j=1;j<=n;j++) {
                if(j==i) continue;
                double rate = b[j][i] / b[i][i];
                for(int k=1;k<=n;k++) {
                    b[j][k] -= b[i][k] *rate; 
                }
                c[j] -= c[i] * rate;
            }
        }
        for(int i=1;i<n;i++) printf("%.3f ",c[i] / b[i][i]);
        printf("%.3f
    ",c[n]/b[n][n]);
    }
    int main() {
        Gauss();
    }
  • 相关阅读:
    软件工程评分表
    评论
    团队成员介绍
    第九天冲刺
    第八天冲刺
    第七天冲刺
    第六天冲刺
    第五天冲刺
    第四天冲刺
    第三天冲刺
  • 原文地址:https://www.cnblogs.com/noblex/p/9741292.html
Copyright © 2011-2022 走看看