BZOJ.1013.[JSOI2008]球形空间产生器(高斯消元)
//824kb 40ms
//HDU3571弱化版 跟那个一比这个太水了,练模板吧。
//列出$n+1$个二次方程后两两相减,就都是一次方程了。
#include <cmath>
#include <cstdio>
#include <algorithm>
const int N=12;
int n;
double A[N][N],B[N],f[N][N];
void Gauss()
{
for(int mxrow,j=0; j<n; ++j)
{
mxrow=j;
for(int i=j+1; i<n; ++i)
if(fabs(f[i][j])>fabs(f[mxrow][j])) mxrow=i;
if(mxrow!=j) std::swap(f[mxrow],f[j]);
for(int i=j+1; i<n; ++i)
if(f[i][j])
{
double t=f[i][j]/f[j][j];
for(int k=j; k<=n; ++k)
f[i][k]-=t*f[j][k];
}
}
for(int i=n-1; ~i; --i)
{
for(int j=i+1; j<n; ++j) f[i][n]-=f[i][j]*f[j][n];
f[i][n]/=f[i][i];
}
for(int i=0; i<n; ++i) printf("%.3lf ",f[i][n]);
}
int main()
{
scanf("%d",&n);
for(int i=0; i<=n; ++i)
for(int j=0; j<n; ++j)
scanf("%lf",&A[i][j]), B[i]+=A[i][j]*A[i][j];
for(int i=0; i<n; ++i)
for(int j=0; j<n; ++j) f[i][j]=(A[i][j]-A[i+1][j])*2.0;
for(int i=0; i<n; ++i) f[i][n]=B[i]-B[i+1];
Gauss();
return 0;
}
BZOJ.1013.[JSOI2008]球形空间产生器(高斯消元)的更多相关文章
- [BZOJ 1013] [JSOI2008]球形空间产生器
[BZOJ 1013] [JSOI2008]球形空间产生器 题面 给出一个n维球体上的n+1个点,求球心坐标 分析 设球心坐标为\((x_1,x_2,\dots x_n)\),由于一个球体上的所有点到 ...
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
1013: [JSOI2008]球形空间产生器sphere Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Judg ...
- bzoj 1013 [JSOI2008]球形空间产生器sphere(高斯消元)
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3584 Solved: 1863[Subm ...
- BZOJ 1013 [JSOI2008]球形空间产生器sphere
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3074 Solved: 1614[Subm ...
- 【高斯消元】BZOJ 1013: [JSOI2008]球形空间产生器sphere
Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁 ...
- bzoj 1013: [JSOI2008]球形空间产生器sphere【高斯消元】
n+1个坐标可以列出n个方程,以二维为例,设圆心为(x,y),给出三个点分别是(a1,b1),(a2,b2),(a3,b3) 因为圆上各点到圆心的距离相同,于是可以列出距离方程 \[ (a1-x)^2 ...
- 【BZOJ1013】【JSOI2008】球形空间产生器 高斯消元
题目描述 有一个\(n\)维空间中的球,告诉你球面上\(n+1\)个点的坐标,求球心的坐标. \(n\leq 10\) 题解 设\(a_{i,j}\)为第\(i\)个点的第\(j\)维坐标,\(i=0 ...
- LG4035/BZOJ1013 「JSOI2008」球形空间产生器 高斯消元
问题描述 LG4035 BZOJ1013 题解 设答案为\((p_1,p_2,p_3,...,p_n)\) 因为是一个球体,令其半径为\(r\),则有 \[\sum_{i=1}^{n}{(a_i-p_ ...
- 【BZOJ】1013: [JSOI2008]球形空间产生器sphere
[BZOJ]1013: [JSOI2008]球形空间产生器sphere 题意:给n+1个n维的点的坐标,要你求出一个到这n+1个点距离相等的点的坐标: 思路:高斯消元即第i个点和第i+1个点处理出一个 ...
随机推荐
- 初识python面向对象编程
初识python面向对象编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.面向过程的程序设计思想 #!/usr/bin/env python #_*_coding:utf-8 ...
- 给定一个整数,求解该整数最少能用多少个Fib数字相加得到
一,问题描述 给定一个整数N,求解该整数最少能用多少个Fib数字相加得到 Fib数列,就是如: 1,1,2,3,5,8,13.... Fib数列,满足条件:Fib(n)=Fib(n-1)+Fib(n- ...
- 产品排序(2015 年北大自招夏令营) (与栈相关的区间DP)
题面: \(solution:\) 又是一道\(DP\)的好题啊!状态并不明显,需要仔细分析,而且还结合了栈的特性! 做这一类题,只要出题人有点理想,一定会在栈的性质上做点文章,所以我们尽量围绕栈的性 ...
- [HNOI2013]比赛 (用Hash实现记忆化搜索)
[HNOI2013]比赛 题目描述 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. (2) 若平局, ...
- linux调试工具glibc的演示分析-core dump double free【转】
转自:http://www.cnblogs.com/jiayy/p/3475544.html 偶然中发现,下面的两端代码表现不一样 void main(){ void* p1 = malloc(32) ...
- oracle行转列
wm_concat()函数 --创建表 create table test(id number,name varchar2(20)); --插入数据 insert into test values(1 ...
- Python实现 -- 冒泡排序、选择排序、插入排序
冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 冒泡排序的原理: 比较两个相邻的元素,如果第一个比第二个大,就交换他们 对每一对相邻的元素做同样的工作,从开始第 ...
- free命令中的buffer和cached的比较(转)
原文链接:https://www.jianshu.com/p/cd2dd59d1566 最近在搞监控,突然看到我系统的内存要用完了,赶紧登录服务器看看, ~]# dstat -m 16G内存就 ...
- Java8系列之重新认识HashMap
转自: http://www.importnew.com/20386.html 简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是Ha ...
- h5手势密码开发(使用jq)
直接上代码: 目录结构: 本次开用到的技术jq,以及引入的jq插件jquery.gesture.password.min.js index.html <!DOCTYPE html> < ...