AC. 梦想

frank_c1

[BZOJ 1013] 球形空间产生器

发布于2015年12月22日 | 暂无评论 | 488阅读 | 线性代数

题目描述

有一个球形空间产生器能够在n维空间中产生一个坚硬的球体。现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁这个球形空间产生器。

输入格式

第一行是一个整数,n。接下来的n+1行,每行有n个实数,表示球面上一点的n维坐标。每一个实数精确到小数点后6位,且其绝对值都不超过20000。

输出格式

有且只有一行,依次给出球心的n维坐标(n个实数),两个实数之间用一个空格隔开。每个实数精确到小数点后3位。数据保证有解。你的答案必须和标准输出一模一样才能够得分。

题目解析

先讨论二维的情况,设圆心坐标为(x,y),则平面上某点(a,b)与圆心的距离可表示为L = \sqrt{(a-x)^2+(b-y)^2},有L^2=a^2-2ax+x^2+b^2-2by+y^2。由圆的定义,圆上任意一点到圆心距离相等,n+1个点可以列出n个等式,列出等式后发现方程两边的二次项都会消去,这是一个线性方程组。这个方法可以方便地推广到高维,用高斯消元法解之。