题目链接在这QvQ

"你要求出这个n维球体的球心坐标",这使我想到的解方程......

先假设n=2,这是一个二维平面。设圆心的坐标为\((x,y)\),有两个坐标\((a_1,b_1)\)和\((a_2,b_2)\),显然两个坐标的关系为:

\((x-a_1)^2+(y-b_1)^2=(x-a_2)^2+(y-b_2)^2\)

考虑如何化简上面的式子。

\((x-a_1)^2-(x-a_2)^2+(y-b_1)^2-(y-b_2)^2=0\)

根据完全平方公式:\((x-a_1)^2=x^2+a_1^2-2 \times x \times a_1\)

\((x-a_1)^2-(x-a_2)^2=x^2+a_1^2-2 \times x \times a_1-x^2-a_2^2+2 \times x \times a_2\)

\((x-a_1)^2-(x-a_2)^2=a_1^2-2 \times x \times a_1-a_2^2+2 \times x \times a_2\)

\((x-a_1)^2-(x-a_2)^2=a_1^2-a_2^2-2(a_1-a_2)x\)

同理,\((y-b_1)^2-(y-b_2)^2=b_1^2-b_2^2-2(b_1-b_2)y\)

整理后:\(a_1^2-a_2^2-2(a_1-a_2)x+b_1^2-b_2^2-2(b_1-b_2)y=0\)

移项后:\(a_1^2-a_2^2+b_1^2-b_2^2=2(a_1-a_2)x+2(b_1-b_2)y\)

这个式子最终为:\(2(a_1-a_2)x+2(b_1-b_2)y=a_1^2-a_2^2+b_1^2-b_2^2\)

由于 \(a_1^2-a_2^2+b_1^2-b_2^2\) 是已知的,我们将 \(a_1^2-a_2^2+b_1^2-b_2^2\) 设为\(Sum\).

\(2(a_1-a_2)\) 和 \(2(b_1-b_2)\)都是已知的项,分别设为 \(a\) 和 \(b\) .

所以它又变成了我们亲切的小学奥数之解方程:\(ax+by=Sum\)

对于二维的答案是 \((x,y)\) ,\(x\) 和 \(y\) 都可以通过高斯消元的模板来解出。

对于更高的维数,跟二维同理,只不过"元"多了几个而已。

所以就这样愉快的A掉了这道大水题。

#include<bits/stdc++.h>
#define ll long long
#define inf 0x3f3f3f3f
#define RI register int
using namespace std;
const int N=25;
const double eps=1e-8;
double v[N][N],f[N][N],s[N],del;
int n;
inline bool Gauss(){
for(RI k=1,i=1;i<=n;++i,k=i){
for(RI j=i+1;j<=n;++j)if(abs(f[j][i])>abs(f[k][i]))k=j;
if(fabs(del=f[k][i])<eps)return false;//不判就出BUG,不知道为啥
swap(f[i],f[k]);swap(s[i],s[k]);
for(RI j=i;j<=n;++j)f[i][j]/=del;s[i]/=del;
for(k=1;k<=n;++k)if(k!=i){
del=f[k][i];
for(RI j=i;j<=n;++j)f[k][j]-=f[i][j]*del;
s[k]-=s[i]*del;
}
}return true;
}
int main(){
scanf("%d",&n);
for(RI i=1;i<=n+1;++i)for(RI j=1;j<=n;++j)scanf("%lf",&v[i][j]);
for(RI i=1;i<=n;++i)
for(RI j=1;j<=n;++j){
s[i]+=(v[i][j]*v[i][j]-v[i+1][j]*v[i+1][j]);//求上面的 "Sum"
f[i][j]=2*(v[i][j]-v[i+1][j]);//求上面的 "a"、"b"等
}
Gauss();
for(RI i=1;i<n;++i)printf("%.3lf ",s[i]);//注意输出格式!
printf("%.3lf",s[n]);
return 0;
}

这题啥都好,就是输出格式有点制杖......请各位小心......

题解 洛谷P4035/BZOJ1013【[JSOI2008]球形空间产生器】的更多相关文章

  1. BZOJ1013 JSOI2008 球形空间产生器sphere 【高斯消元】

    BZOJ1013 JSOI2008 球形空间产生器sphere Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点 ...

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

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

  3. bzoj千题计划104:bzoj1013: [JSOI2008]球形空间产生器sphere

    http://www.lydsy.com/JudgeOnline/problem.php?id=1013 设球心(x1,x2,x3……) 已知点的坐标为t[i][j] 那么 对于每个i满足 Σ (t[ ...

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

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

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

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

  6. BZOJ1013: [JSOI2008]球形空间产生器sphere

    传送门 高斯消元练习. 模板: void Guass(){ int waited; up(i,1,N){ waited=i; up(j,i+1,N)if(fabs(M[j][i])>fabs(M ...

  7. BZOJ1013 [JSOI2008]球形空间产生器sphere[高消]

    数论进度开的好慢啊.我整天做的都是什么鬼题啊. 简单的高消题,用一个式子把另外$n$个有二次项和距离的式子全消掉就行了. #include<iostream> #include<cs ...

  8. 【bzoj1013】[JSOI2008]球形空间产生器sphere

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

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

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

随机推荐

  1. 常见电商项目的数据库表设计(MySQL版)

    转自:https://cloud.tencent.com/developer/article/1164332 简介: 目的: 电商常用功能模块的数据库设计 常见问题的数据库解决方案 环境: MySQL ...

  2. MultipartFile(文件的上传)--CommonsMultipartResolver

    转自:https://www.cnblogs.com/896240130Master/p/6430908.html SpringMVC 中,文件的上传,是通过 MultipartResolver 实现 ...

  3. U3D中碰撞体和刚体的关系

    1.刚体是用来接受力作用的组件: 2.碰撞体是碰撞系统用来检测碰撞的组件: 碰撞产生碰撞信息,游戏物体根据碰撞信息生成一个力作用在刚体上,刚体受力后就会产生一个速率,最终在游戏物体的运动体现出来. 也 ...

  4. E20170520-ts

    regexp  n. 正则表达式 metacharacter メタ文字 元字符 quote   vt. 引述,引用; escape  v. 逃脱; 逃离;   n. 逃走; 逃跑工具或方法;  reg ...

  5. 利用jenv安装maven, tomcat,zookeeper等

    jenv有关的网站: http://jenv.io https://github.com/gcuisinier/jenv 1.  执行jenv安装 $ curl -L -s get.jenv.io | ...

  6. Python机器学习算法 — 朴素贝叶斯算法(Naive Bayes)

    朴素贝叶斯算法 -- 简介 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法.最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Baye ...

  7. bzoj 3437: 小P的牧场【斜率优化】

    emmm妹想到要倒着推 先假设只在n建一个控制站,这样的费用是\( \sum_{i=1}^{n} b[i]*(n-i) \)的 然后设f[i]为在i到n键控制站,并且i一定建一个,能最多节省下的费用, ...

  8. P4475 巧克力王国(KDTree)

    传送门 首先可以把约束条件看成一条直线,然后每个巧克力看成一个点,求给定区域内的点权和 用KDTree,每次判断一下当前矩形是否整个都在里面或都在外面,是的话直接返回,否则的话递归 注意,必须该矩形四 ...

  9. 题解报告:hdu 1062 Text Reverse

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1062 Problem Description Ignatius likes to write word ...

  10. 转】Mahout构建图书推荐系统

    原博文出自于: http://blog.fens.me/hadoop-mahout-recommend-book/ 感谢! Mahout构建图书推荐系统 Hadoop家族系列文章,主要介绍Hadoop ...