题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1013

根据距离式子,两个点的话,两边平方再消掉x^2之后有:

  a1^2 - 2*a1*x1 + a2^2 - 2*a2*x2 + ... + an^2 - 2*an*xn = b1^2 - 2*b1*x1 + b2^2 - 2*b2*x2 + ... +bn^2 - 2*bn*xn

把x放到一边,有:

  2 ( b1 - a1 ) * x1 + 2 ( b2 - a2 ) * x2 + ... + 2 ( bn - an ) *xn = b1^2 - a1^2 + b2^2 - a2^2 + ... + bn^2 - an^2

所以后n个点全和第一个点作差,就得到了n个式子。

这是没管无解、多解的高斯消元。把该未知数的系数弄成1,就能方便地输出n+1位置的值作为答案了。

注意改的过程中 一些参数可能会被改!所以注意顺序或者建一个tmp存一下!

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=15;
int n;
double a[N][N+1];
void read()
{scanf("%d",&n);double tp;for(int i=1;i<=n;i++)scanf("%lf",&a[0][i]);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){scanf("%lf",&tp);a[i][j]=2*(tp-a[0][j]);a[i][n+1]+=tp*tp-a[0][j]*a[0][j];}
}
void gauss()
{for(int i=1,now=1;i<=n;i++,now++){int k=now;    //不要k=n+1然后j从now开始,可能系数全负 for(int j=now+1;j<=n;j++)if(a[j][i]>a[k][i])k=j;for(int j=1;j<=n+1;j++)swap(a[k][j],a[now][j]);for(int j=n+1;j>=i;j--)    //不然a[now][i]的值会改!!! a[now][j]/=a[now][i];for(int j=1;j<=n;j++)    //1~nif(j!=now)    //
                for(int l=n+1;l>=i;l--)//同上,正序 a[j][i]的值会改!!! a[j][l]-=a[j][i]*a[now][l];}
}
int main()
{read();gauss();for(int i=1;i<n;i++)printf("%.3lf ",a[i][n+1]);printf("%.3lf",a[n][n+1]);return 0;
}

转载于:https://www.cnblogs.com/Narh/p/8982609.html

bzoj1013球形空间相关推荐

  1. 解线性方程组——高斯消元の板子

    ATP记得它在很久以前看过一点点高斯消元的东西然后做过一点点题目..但是当时实在是太zz了所以本来就没有很懂这个东西现在更是忘得差不多了.. 所以现在就当重新学一遍了QwQ 一点口胡的解释 高斯消元. ...

  2. bzoj1013 [JSOI2008]球形空间产生器sphere

    bzoj1013 [JSOI2008]球形空间产生器sphere 原题链接 题解 对\(k\in[2,n]\)列方程 \[\sum_{i=1}^{n}x_{i,0}(2x_{i,k}-2x_{i,k- ...

  3. [2018.12.18]BZOJ1013 [JSOI2008]球形空间产生器sphere

    设中心点坐标\(B=(b_1,b_2,b_3,...,b_n)\),球面上的点的坐标A=\((a_1,a_2,a_3,...,a_n)\) 则 \(dist_{A,B}=\sqrt{(a_1-b_1) ...

  4. bzoj1013,luogu4035-[JSOI2008]球形空间产生器【高斯消元】

    正题 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=3534 https://www.luogu.org/problem/P4035 题 ...

  5. 【高斯消元】bzoj1013 [JSOI2008]球形空间产生器sphere

    求圆神饶恕~>_< 根据半径相等的关系建立n+1个二次方程, 然后每个和前一个相减消去二次项,get n个线性方程. #include<cstdio> #include< ...

  6. 【BZOJ1013】球形空间产生器,第一次的高斯消元

    Time:2016.08.18 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 板子高斯消元 根据球的方程(x−a)2+(y−b)2+...=r2(x-a)^2+(y-b)^2+.. ...

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

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

  8. 【高斯消元】球形空间产生器(luogu 4035/金牌导航 高斯消元-1)

    球形空间产生器 luogu 4035 金牌导航 高斯消元-1 题目大意 给出n+1个n维的点,让你求一个点,使该点到所有点欧几里得距离相等 输入样例 2 0.0 0.0 -1.0 1.0 1.0 0. ...

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

    http://www.lydsy.com/JudgeOnline/problem.php?id=1013 只要列出方程组就能套高斯来解了. 显然距离相等,所以开不开平方都无所谓. b表示圆心,可列 s ...

最新文章

  1. 如何在.NET中创建服务型组件
  2. 蓝桥杯:算法提高 9-2 文本加密
  3. 【转】解决IIS 用localhost需要用户名密码!
  4. lagom的微服务框架_微服务有麻烦吗? Lagom在这里为您提供帮助。 试试吧!
  5. WinCE 字体平滑 ClearType
  6. Vue (响应式原理-模拟-3-Compiler)
  7. Python Socket编程初探
  8. php7安装redis扩展和memcache扩展
  9. zblog php的foot模板在那里,zblog主题模板修改教程 zblog模板怎么修改?
  10. Mac 显示/不显示隐藏文件
  11. html文件上传协议,模拟HTML表单上传文件(RFC 1867)
  12. SAP 中的货币(Currencies)
  13. Halcon 学习笔记八:颜色识别
  14. 软件测试【网络经典面试题】面经分享
  15. 用计算机完成下表的视距测量计算公式,2012测量学计算题库及参考答案
  16. openwrt查看linux内核,OpenWrt教程-如何升级linux内核版本
  17. 决定系数 均方误差mse_误差分析计算公式及其 matlab 代码实现(mse、mape、rmse等)...
  18. 怎么把视频转换成mp3格式?
  19. Ant Design中select框往下滑动会自动回到顶部的问题
  20. 让企业经营看得见,柏明顿阿米巴经营会计提升财务层级

热门文章

  1. python第三方库排行-Python模块汇总(常用第三方库)
  2. python常见错误-python初学者常见的错误
  3. python怎么安装matplotlib-[Python]一步步安装numpy,matplotlib
  4. python3.8.2安装教程-在服务器上安装python3.8.2环境的教程详解
  5. python超简单小游戏代码-Python实现简单的猜单词小游戏
  6. 有道精品课python-115批量转存与提取sha1工具2020下载
  7. 用python画漂亮图片-使用 Python/matplotlib 画出漂亮的论文插图
  8. python个人项目-软工作业个人项目wc.exe(python实现)
  9. 自学python推荐书籍2019-2019最全Python入门学习路线,不是我吹,绝对是最全
  10. python3中文手册-Python3.4中文手册 chm版