zoukankan      html  css  js  c++  java
  • 【BZOJ1013】球形空间产生器sphere

    高斯消元模板题

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #include <iostream>
     5 #include <cmath>
     6 
     7 using namespace std;
     8 
     9 const int maxn=30;
    10 const double EPS=1e-9;
    11 double G[maxn][maxn];
    12 double a[maxn][maxn];
    13 double ans[maxn];
    14 int n;
    15 double g;
    16 void gauss_jordan(){
    17     int num;
    18     for(int i=1;i<n;i++){
    19         num=i;
    20         for(int j=i+1;j<=n;j++){
    21             if(fabs(a[j][i])>fabs(a[num][i]))
    22                 num=j;
    23         }
    24         for(int j=1;j<=n+1;j++)
    25             swap(a[i][j],a[num][j]);
    26         for(int j=i+1;j<=n;j++){
    27             if(fabs(a[j][i])<=EPS)continue;
    28             double t=a[j][i]/a[i][i];
    29             for(int k=i;k<=n+1;k++){
    30                 a[j][k]-=a[i][k]*t;
    31             }
    32         }
    33     }
    34     for(int i=n;i>=1;i--){
    35         ans[i]=a[i][n+1]/a[i][i];
    36         for(int j=i-1;j>=1;j--){
    37             a[j][n+1]-=a[j][i]*ans[i];
    38         }
    39     }
    40 }
    41 int main(){
    42     scanf("%d",&n);
    43     for(int i=1;i<=n+1;i++){
    44         for(int j=1;j<=n;j++){
    45             scanf("%lf",&g);
    46             G[i][j]+=-2.0*g;
    47             G[i][n+1]+=g*g;
    48         }
    49     }
    50     for(int i=1;i<=n;i++){
    51             for(int l=1;l<=n+1;l++){
    52                 a[i][l]=G[i][l]-G[i+1][l];
    53             }
    54             a[i][n+1]=-a[i][n+1];
    55 
    56     }
    57 
    58     /*for(int i=1;i<=n;i++){
    59         for(int j=1;j<=n+1;j++){
    60             printf("%.1f ",a[i][j]);
    61         }
    62         printf("
    ");
    63     }*/
    64     gauss_jordan();
    65     for(int i=1;i<=n;i++){
    66         printf("%.3f ",ans[i]);
    67     }
    68 
    69     return 0;
    70 }
    View Code
  • 相关阅读:
    课堂测试-单元测试(比较大小)
    第三周进度条
    软件工程个人作业02
    构建之法——阅读笔记02
    第二周学习进度条
    第一周学习进度条
    软件工程个人作业01
    构建之法阅读笔记01
    java课堂测试
    Java验证码程序
  • 原文地址:https://www.cnblogs.com/LQLlulu/p/9071278.html
Copyright © 2011-2022 走看看