题目链接:

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

题目大意:

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

思路:

每两个可以构成一个n个变量的式子,可以构造出n个不同的式子,进行高斯消元求解。

高斯消元模板:

 typedef double Matrix[maxn][maxn];
void gauss(Matrix A, int n)
{
for(int i = ; i < n; i++)
{
int r = i;
for(int j = i + ; j < n; j++)
if(fabs(A[j][i]) > fabs(A[r][i]))r = j;
if(r != i)for(int j = ; j <= n; j++)swap(A[r][j], A[i][j]);
for(int k = i + ; k < n; k++)
{
double f = A[k][i] / A[i][i];
for(int j = i; j <= n; j++)A[k][j] -= f * A[i][j];
}
} for(int i = n - ; i >= ; i--)
{
for(int j = i + ; j < n; j++)
{
A[i][n] -= A[j][n] * A[i][j];
}
A[i][n] /= A[i][i];
}
}
 #include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);//不可再使用scanf printf
#define Max(a, b) ((a) > (b) ? (a) : (b))//禁用于函数,会超时
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define Mem(a) memset(a, 0, sizeof(a))
#define Dis(x, y, x1, y1) ((x - x1) * (x - x1) + (y - y1) * (y - y1))
#define MID(l, r) ((l) + ((r) - (l)) / 2)
#define lson ((o)<<1)
#define rson ((o)<<1|1)
#pragma comment(linker, "/STACK:102400000,102400000")//栈外挂
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while (ch<''||ch>''){if (ch=='-') f=-;ch=getchar();}
while (ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} typedef long long ll;
const int maxn = + ;
const int mod = ;//const引用更快,宏定义也更快
const int INF = 1e9;
typedef double Matrix[maxn][maxn];
double a[maxn][maxn];
double tmp[maxn][maxn];
void gauss(Matrix A, int n)
{
for(int i = ; i < n; i++)
{
int r = i;
for(int j = i + ; j < n; j++)
if(fabs(A[j][i]) > fabs(A[r][i]))r = j;
if(r != i)for(int j = ; j <= n; j++)swap(A[r][j], A[i][j]);
for(int k = i + ; k < n; k++)
{
double f = A[k][i] / A[i][i];
for(int j = i; j <= n; j++)A[k][j] -= f * A[i][j];
}
} for(int i = n - ; i >= ; i--)
{
for(int j = i + ; j < n; j++)
{
A[i][n] -= A[j][n] * A[i][j];
}
A[i][n] /= A[i][i];
}
}
int main()
{
int n;
scanf("%d", &n);
for(int i = ; i <= n; i++)
for(int j = ; j < n; j++)scanf("%lf", &a[i][j]);
for(int i = ; i <= n; i++)
{
for(int j = ; j < n; j++)
{
tmp[i - ][n] -= a[][j] * a[][j];
tmp[i - ][n] += a[i][j] * a[i][j];
}
for(int j = ; j < n; j++)
tmp[i - ][j] = 2.0 * (a[i][j] - a[][j]);
}
gauss(tmp, n);
for(int i = ; i < n; i++)
{
if(i == )printf("%.3lf", tmp[i][n]);
else printf(" %.3lf", tmp[i][n]);
}
puts("");
return ;
}

BZOJ 1013 球形空间产生器sphere 高斯消元的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. BZOJ1013球形空间产生器sphere 高斯消元

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

  7. bzoj1013球形空间产生器sphere 高斯消元(有系统差的写法

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

  8. 【BZOJ1013】球形空间产生器(高斯消元)

    [BZOJ1013]球形空间产生器(高斯消元) 题面 Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标, ...

  9. BZOJ_1013_[JSOI2008]_球形空间产生器_(高斯消元)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1013 n维空间,给出球上n+1个点的n维坐标,求球心坐标. 提示:给出两个定义:1. 球心:到 ...

随机推荐

  1. JAVA-3NIO之Buffer和Buffer之Scatter/Gather

    注意:转载自并发编程网,java nio系列教程 1.Buffer Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的. 缓冲区本质上是 ...

  2. HA_Mirror 数据库镜像

    环境准备: 虚拟机3台,INTER-DC, INTER-SQLA, INTER-SQLB 创建域帐户 INTER\MSSQLSERVER.SERVICE,分别添加到INTER-SQLA和INTER-S ...

  3. [PHP] PHP的纯CPU基准测试(PHP5.5.9 vs PHP7.2.1)

    PHP的纯CPU基准测试(PHP5.5.9 vs PHP7.2.1): 1.bench.php 可在PHP源代码的 php-src/Zend 目录 2.micro_bench.php 也可以在 PHP ...

  4. 4.java设计模式-原型模式(prototype)

    在<JAVA与模式>一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更 ...

  5. python学习之老男孩python全栈第九期_day017知识点总结——初识递归、算法

    一. 递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 最大递归深度默认是997 -- python从内存角度出发做得限制(而不是程序真的报错),最大深度可以修改 def func(n ...

  6. jQuery动态创建的dom对象不能绑定事件的解决方法

    参照网上前辈: 方法一:绑定live事件 live(type,[data],fn) $(selector).live("click",function(){ alert(" ...

  7. 关于MyEclipse2017Ci10版本的破解和Tomcat9.0的安装搭配使用

    昨天和今天就忙这两件事情了.废话不多说直接上干货! 首先是关于Myeclipse2017的破解,关于这个破解,网上的资源和文件很多,可以自行下载,我就不贴链接了. 我要说的是破解的问题,在这里我们要注 ...

  8. Django之Form字段插件

    一.Django内置Form组件:        在使用Django内置的Form组件时,里面包含了许多[字段]和[插件],也就是验证用户输入的请求以及生成显示在前端的HTML.下面介绍一下用法: F ...

  9. css3在页面中插入内容

    A. 使用选择器来插入内容 h2:before{ content:"前缀"; } h2:after{ content:"后缀"; } B. 指定个别的元素不进行 ...

  10. Activiti实现会签功能

    一个任务需要多个角色进行审批或者表决,根据这些审批结果来决定流程的走向.实现以上任务,activiti已经提供了支持,可以使用BPMN规范的多实例活动来实现. 1.Activiti多实例: 多实例节点 ...