n+1个坐标可以列出n个方程,以二维为例,设圆心为(x,y),给出三个点分别是(a1,b1),(a2,b2),(a3,b3)

因为圆上各点到圆心的距离相同,于是可以列出距离方程

\[(a1-x)^2+(b1-y)^2=(a2-x)^2+(b2-y)^2
\]

\[(a1-x)^2+(b1-y)^2=(a3-x)^2+(b3-y)^2
\]

然后化简

\[-2(a2-a1)x-2(b2-b1)y=a1^2-a2^2+b1^2-b2^2
\]

\[-2(a3-a1)x-2(b3-b1)y=a1^2-a3^2+b1^2-b3^2;
\]

然后就可以用高斯消元了

#include<iostream>
#include<cstdio>
using namespace std;
const int N=25;
int n;
double f[N],a[N][N],p;
void gaosi()
{
for(int i=1;i<=n;i++)
{
int nw=i;
for(int j=i+1;j<=n;j++)
if(a[j][i]>a[nw][i])
nw=j;
for(int j=i;j<=n+1;j++)
swap(a[nw][j],a[i][j]);
for(int j=i+1;j<=n+1;j++)
a[i][j]/=a[i][i];
a[i][i]=1;
for(int j=i+1;j<=n;j++)
{
for(int k=i+1;k<=n+1;k++)
a[j][k]-=a[j][i]*a[i][k];
a[j][i]=0;
}
}
for(int i=n;i>=1;i--)
for(int j=i+1;j<=n;j++)
{
a[i][n+1]-=a[i][j]*a[j][n+1];
a[i][j]=0;
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lf",&f[i]);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
scanf("%lf",&p);
a[i][j]=2*(p-f[j]);
a[i][n+1]+=p*p-f[j]*f[j];
}
gaosi();
for(int i=1;i<=n;i++)
printf("%.3lf ",a[i][n+1]);
return 0;
}

bzoj 1013: [JSOI2008]球形空间产生器sphere【高斯消元】的更多相关文章

  1. BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Judg ...

  2. lydsy1013: [JSOI2008]球形空间产生器sphere 高斯消元

    题链:http://www.lydsy.com/JudgeOnline/problem.php?id=1013 1013: [JSOI2008]球形空间产生器sphere 时间限制: 1 Sec  内 ...

  3. [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)

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

  4. bzoj 1013 [JSOI2008]球形空间产生器sphere(高斯消元)

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3584  Solved: 1863[Subm ...

  5. BZOJ 1013 [JSOI2008]球形空间产生器sphere

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3074  Solved: 1614[Subm ...

  6. BZOJ-1013 球形空间产生器sphere 高斯消元+数论推公式

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3662 Solved: 1910 [Subm ...

  7. 【高斯消元】BZOJ 1013: [JSOI2008]球形空间产生器sphere

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

  8. 【BZOJ 1013】【JSOI2008】球形空间产生器sphere 高斯消元基础题

    最基础的高斯消元了,然而我把j打成i连WA连跪,考场上再犯这种错误就真的得滚粗了. #include<cmath> #include<cstdio> #include<c ...

  9. BZOJ 1013 球形空间产生器sphere 高斯消元

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1013 题目大意: 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困 ...

随机推荐

  1. spring之:XmlWebApplicationContext作为Spring Web应用的IoC容器,实例化和加载Bean的过程

    它既是 DispatcherServlet 的 (WebApplicationContext)默认策略,又是 ContextLoaderListener 创建 root WebApplicationC ...

  2. 2015 浙江省赛 Beauty of Array (思维题)

    Beauty of Array Edward has an array A with N integers. He defines the beauty of an array as the summ ...

  3. 开发环境入门 linux基础 (部分)while for 函数 计划任务

    while循环 while do 动作 done 需要无限循环时我们会选择while : echo -e 格式处理,将\n的意义不变. exit 指退出执行程序 break 指跳出本层循环 conti ...

  4. delphi 10.2.2.2004 Tokyo 安装步骤

    delphi 各版本的安装,其XX工具都附有详细说明.遵守其安装步骤,很容易成功. 本教就以 delphi 10.2.2.2004 为例,演示一下整个安装过程.其它各版本就自行尝试. 附: delph ...

  5. 新增线下、APP、公众号多处入口,小程序会再火起来么?

    现在,大多数互联网创业者最缺的是流量,第二缺的是钱.之前开发者们追捧小程序的重要原因就是在于认为这可能是下一个微信公众号体量的流量入口,因为大家都想从微信的8亿多用户中收获自己的一部分用户. 近期部分 ...

  6. java 多线程系列基础篇(六)之线程让步

    1. yield()介绍 yield()的作用是让步.它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权:但是,并不能保证在当前线程调用yield()之后,其 ...

  7. form(去掉关闭按钮,禁止调整大小)

    禁止Form窗口调整大小方法:FormBorderStyle 设为FixedSingle: 不能使用最大化窗口: MaximuzeBox 设为False: 不能使用最小化窗口:   MinimizeB ...

  8. leetcode643

    double findMaxAverage(vector<int>& nums, int k) { double max = INT_MIN; int len = nums.siz ...

  9. tar命令解压jdk.tar.gz包 报错 gzip: stdin: not in gzip format

    转自:https://blog.csdn.net/LL_zhuo/article/details/44173355 遇到和这篇博文一样的问题了.用wget 从oracle官网下载jdk, http:/ ...

  10. css中的hack

    1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以 ...