1013: [JSOI2008]球形空间产生器sphere

Time Limit: 1 Sec  Memory Limit: 162 MB
Submit: 4846  Solved: 2525
[Submit][Status][Discuss]

Description

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

Input

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

Output

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

Sample Input

2
0.0 0.0
-1.0 1.0
1.0 0.0

Sample Output

0.500 1.500

HINT

  提示:给出两个定义:1、 球心:到球面上任意一点距离都相等的点。2、 距离:设两个n为空间上的点A, B

的坐标为(a1, a2, …, an), (b1, b2, …, bn),则AB的距离定义为:dist = sqrt( (a1-b1)^2 + (a2-b2)^2 +

… + (an-bn)^2 )

————————————————————————

递归高斯消元模板

今天才会呢……

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <set>
#include <vector>
#include <cmath>
#define inf 0x7fffffff
//#define ivorysi
#define siji(i,x,y) for(int i=(x);i<=(y);++i)
#define gongzi(j,x,y) for(int j=(x);j>=(y);--j)
#define xiaosiji(i,x,y) for(int i=(x);i<(y);++i)
#define sigongzi(j,x,y) for(int j=(x);j>(y);--j)
#define p(x) (x)*(x)
using namespace std;
double a[][],b[][],ansx[];
int n;
void guass(int l) {
if(l>n) return;
if(l==n) {ansx[n]=a[n][n+]/a[n][n];return;}
siji(i,l,n) {
siji(j,i+,n) {
if(fabs(a[j][l])>fabs(a[i][l])) {
siji(k,,n+) {
swap(a[j][k],a[i][k]);
}
}
}
}
siji(j,l+,n) {
siji(k,l+,n+) {
a[j][k]=a[j][k]-(a[l][k]*a[j][l]/a[l][l]);
}
a[j][l]=;//这里,因为前面都要用到a[j][l]/a[l][l],所以不能过早刷成0
}
guass(l+);
siji(i,l+,n) {
a[l][n+]-=(a[l][i]*ansx[i]);
}
ansx[l]=a[l][n+]/a[l][l];
}
void init() {
scanf("%d",&n);
siji(i,,n+) {
siji(j,,n) {
scanf("%lf",&b[i][j]);
}
}
siji(i,,n) {
siji(j,,n) {
a[i][j]=b[i+][j]-b[i][j];
a[i][n+]+=(p(b[i+][j])-p(b[i][j]));
}
a[i][n+]/=2.0;
}
}
void solve() {
init();
guass();
siji(i,,n) {
printf("%.3lf%c",ansx[i]," \n"[i==n]);
}
}
int main(int argc, char const *argv[])
{
solve();
return ;
}

最新文章

  1. (转)CString截取字符串全攻略
  2. boost字符串算法
  3. 使用C#设计Fluent Interface
  4. Extjs 中column的renderer使用方法
  5. Windows 8.1 应用再出发 - 创建我的第一个应用
  6. python基础(2)
  7. 【BZOJ】2329: [HNOI2011]括号修复(splay+特殊的技巧)
  8. Why NHibernate updates DB on commit of read-only transaction
  9. 查看事务锁:innodb_trx+innodb_locks+innodb_lock_waits
  10. 慎用preg_replace危险的/e修饰符(一句话后门常用)
  11. 生产场景NFS共享存储优化及实战
  12. 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
  13. Python [习题] 文件操作:目录间copy 文件
  14. 【Splay】bzoj1500(听说此题多码上几遍就能不惧任何平衡树题)
  15. Android开发之仿微信显示更多文字的View
  16. HTML5中自定义属性(data-*)
  17. Monkey 生成报告方法
  18. Confluence 6 查看空间活动
  19. Fiddler抓包域名过滤(转载)
  20. 基于RYU的拓扑发现

热门文章

  1. leetcode第13题--Roman to Integer
  2. bootstrap导航菜单,手机和PC端
  3. C#的Task和Java的Future
  4. 关于AngularJS的分享
  5. 对&quot;一维最大子数组和&quot;问题的思考
  6. 序列化和反序列化的几种方式(DataContractSerializer)
  7. Service Manager 2012
  8. OpenCascade
  9. java生成PDF文件(itext)
  10. HTML5 Canvas中实现绘制一个像素宽的细线