BZOJ 1013 球形空间产生器sphere 高斯消元
来源:互联网 发布:淘宝新店怎么开直通车 编辑:程序博客网 时间:2024/04/29 19:43
题意:n维空间,给出n+1个点的坐标 求出圆心坐标.n<=10.
根据两点距离列出n+1个方程,两个方程相减,消去未知半径和平方项后,
根据两点距离列出n+1个方程,两个方程相减,消去未知半径和平方项后,
剩下n个方程n个未知数,高斯消元即可.
#include <bits/stdc++.h>using namespace std;typedef long long ll;const double eps=1e-6;const int N=3e2+20;int n;double f[N],a[N][N];void init(){for(int i=1;i<=n;i++)scanf("%lf",&f[i]);double x;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%lf",&x);a[i][j]=2.0*(x-f[j]);a[i][n+1]+=x*x-f[j]*f[j]; }}}bool gauss(){int i,j,now=1;double t;for(i=1;i<=n;i++)//col{for(j=now;j<=n;j++)if(fabs(a[j][i])>eps) break;if(j>n)continue;if(j!=now)for(int k=1;k<=n+1;k++)swap(a[j][k],a[now][k]);t=a[now][i];for(int k=1;k<=n+1;k++)a[now][k]/=t;//a[now][i]=1;for(int k=1;k<=n;k++){if(k!=now){t=a[k][i];//for(int l=1;l<=n+1;l++)a[k][l]-=t*a[now][l];}}now++;}for(i=now;i<=n;i++)if(fabs(a[i][n+1])>eps)return 0;return 1;}int main(){while(cin>>n){init();int k=gauss();for(int i=1;i<=n;i++)printf("%.3lf%c",a[i][n+1],i==n?'\n':' ');}return 0;}
阅读全文
0 0
- BZOJ 1013 球形空间产生器sphere 高斯消元
- BZOJ 1013: [JSOI2008]球形空间产生器sphere
- 【BZOJ 1013】 [JSOI2008]球形空间产生器sphere
- BZOJ-1013-球形空间产生器sphere
- bzoj 1013: [JSOI2008]球形空间产生器sphere
- BZOJ 1013: [JSOI2008]球形空间产生器sphere
- BZOJ 1013 [JSOI2008]球形空间产生器sphere
- BZOJ 1013 [JSOI2008]球形空间产生器sphere
- bzoj 1013 [JSOI2008]球形空间产生器sphere
- 【BZOJ 1013】 [JSOI2008]球形空间产生器sphere
- BZOJ 1013 [JSOI2008] 球形空间产生器sphere
- bzoj 1013 [JSOI2008]球形空间产生器sphere
- bzoj 1013 [JSOI2008]球形空间产生器sphere
- BZOJ 1013 JSOI2008 球形空间产生器sphere 高斯消元
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
- 【高斯消元模板】【bzoj 1013】: [JSOI2008]球形空间产生器sphere
- [省选前题目整理][BZOJ 1013]球形空间产生器sphere(高斯消元)
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
- 理解JAVA nio非阻塞
- Linux常见目录及作用
- 其它
- Qt编写的我的记事本
- 快讯:浙江大学巡视整改通报公布
- BZOJ 1013 球形空间产生器sphere 高斯消元
- android studio下载gradle 失败
- 交换机和路由器的区别
- 初学
- jsday02(一个基本的提交js post get 一些基本的标签)
- #pragma pack 结构体对齐编译器选项
- 简单学习如何在mac终端上编写c语言代码并编译
- 阿里2018校招客户端研发笔试之编程题
- 文章标题