zoukankan      html  css  js  c++  java
  • bzoj 1013: [JSOI2008]球形空间产生器sphere

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #define eps 1e-6
     5 #define M 15
     6 using namespace std;
     7 double a[M],b[M][M];
     8 int n;
     9 int main()
    10 {
    11     scanf("%d",&n);
    12     for(int i=1;i<=n;i++)
    13       scanf("%lf",&a[i]);
    14     for(int i=1;i<=n;i++)
    15       for(int j=1;j<=n;j++)
    16         {
    17             double t;
    18             scanf("%lf",&t);
    19             b[i][j]=2*(t-a[j]);
    20             b[i][n+1]+=t*t-a[j]*a[j]; 
    21         }
    22     for(int i=1;i<=n;i++)
    23       {
    24         int to;
    25         for(to=i;to<=n;to++)
    26           if(b[to][i]!=0)
    27             break;
    28         if(i!=to)
    29           for(int j=1;j<=n+1;j++)
    30             swap(b[i][j],b[to][j]);
    31         double t=b[i][i];
    32         for(int j=i;j<=n+1;j++)
    33           b[i][j]/=t;
    34         for(int j=1;j<=n;j++)
    35           if(j!=i)
    36             {
    37                 t=b[j][i];
    38                 for(int k=1;k<=n+1;k++)
    39                   b[j][k]-=t*b[i][k];
    40             }
    41       }
    42     for(int i=1;i<n;i++)
    43       printf("%.3lf ",b[i][n+1]);
    44     printf("%.3lf
    ",b[n][n+1]);
    45     return 0;
    46 }

    先假设是二维的,设圆心为(x,y),那(x1-x)^2+(y1-y)^2=(xk-x)^2+(yk-y)^2

    这样n+1个点就能构造出n个方程  然后高斯消元。(高斯消元不会的看看代码就知道了)

  • 相关阅读:
    centos7安装elasticsearch
    nginx安装
    Emit学习笔记
    Docker备忘录
    IdentityServer4-参考
    IdentityServer4-端点
    IdentityServer4-主题
    css
    IdentityServer4-快速入门
    IdentityServer4-介绍
  • 原文地址:https://www.cnblogs.com/xydddd/p/5226862.html
Copyright © 2011-2022 走看看