BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
1013: [JSOI2008]球形空间产生器sphere
Time Limit: 20 Sec
Memory Limit: 256 MB
题目连接
http://www.lydsy.com/JudgeOnline/problem.php?id=1013
Description
有一个球形空间产生器能够在n维空间中产生一个坚硬的球体。现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁这个球形空间产生器。
Input
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
数据规模:
对于40%的数据,1<=n<=3
对于100%的数据,1<=n<=10
提示:给出两个定义:
1、 球心:到球面上任意一点距离都相等的点。
2、 距离:设两个n为空间上的点A, B的坐标为(a1, a2, …, an), (b1, b2, …, bn),则AB的距离定义为:dist = sqrt( (a1-b1)^2 + (a2-b2)^2 + … + (an-bn)^2 )
题意
题解:
高斯消元
假设圆心坐标为(x1,x2,x3.....xn)
那:(a1-x1)^2+(a2-x2)^2.......+(an-xn)^2=r^2
(b1-x1)^2+(b2-x2)^2.......+(bn-xn)^2=r^2
两个方程相减得到:(a1-b1)x1+(a2-b2)x2......(an-bn)xn=(a1^2-b1^2)+.......+(an^2-bn^2)/2
然后高斯消元求解就好了
代码:
#include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <queue> #include <typeinfo> #include <fstream> #include <map> #include <stack> typedef long long ll; using namespace std; //freopen("D.in","r",stdin); //freopen("D.out","w",stdout); #define sspeed ios_base::sync_with_stdio(0);cin.tie(0) #define maxn 1000100 #define mod 10007 #define eps 1e-9 int Num; //const int inf=0x7fffffff; //нчоч╢С const int inf=0x3f3f3f3f; inline ll read() {ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f; } //************************************************************************************** int n; double f[30]; double a[30][30]; void gauss() {int now,to;double t;for(int i=1;i<=n;i++){now=i;for(to=i+1;to<=n;to++)if(abs(a[to][i])>abs(a[now][i])) now=to;if(now!=i){for(int j=1;j<=n+1;j++)swap(a[i][j],a[now][j]);}for(int j=i+1;j<=n;j++){double tmp=a[j][i]/a[i][i];a[j][i]=0;for(int k=i+1;k<=n+1;k++)a[j][k]-=tmp*a[i][k];}}for(int i=n;i;i--){for(int j=n;j>i;j--)a[i][n+1]-=a[j][n+1]*a[i][j];a[i][n+1]/=a[i][i];}for(int i=1;i<n;i++)printf("%.3lf ",a[i][n+1]);printf("%.3lf",a[n][n+1]); } int main() {scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%lf",&f[i]);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){double t;scanf("%lf",&t);a[i][j]=2*(t-f[j]);a[i][n+1]+=t*t-f[j]*f[j];}}gauss();return 0; }
转载于:https://www.cnblogs.com/qscqesze/p/4749215.html
BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元相关推荐
- BZOJ 1013: [JSOI2008]球形空间产生器sphere( 高斯消元 )
可以得到N条N元一次方程, 高斯消元就OK了..时间复杂度O(N3) ----------------------------------------------------------------- ...
- BZOJ 1013 JSOI2008 球形空间产生器sphere 高斯消元
题目大意:给定n维空间下的n+1个点,求这n个点所在的球面的球心 以前尝试了非常久的模拟退火0.0 至今仍未AC 0.0 今天挖粪涂墙怒学了高斯消元-- 我们设球心为X(x1,x2,...,xn) 如 ...
- bzoj 1013: [JSOI2008]球形空间产生器sphere(高斯消元)
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MB Submit: 5598 Solved: 2943 [Su ...
- luogu P4035 [JSOI2008]球形空间产生器(高斯消元 / 模拟退火)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 数据范围只开到了10,而且是经典的力学结构,所以我们可以用模拟退火,可以做一下 nnn 维的正交分解h ...
- 【BZOJ】1013: [JSOI2008]球形空间产生器sphere(高斯消元)
http://www.lydsy.com/JudgeOnline/problem.php?id=1013 只要列出方程组就能套高斯来解了. 显然距离相等,所以开不开平方都无所谓. b表示圆心,可列 s ...
- 【BZOJ】1013 [JSOI2008]球形空间产生器sphere
[算法]高斯消元 [题解] 建矩阵; for i 找到同列绝对值最大数字; 交换; for k(行) j(列)(倒序) 除法; for i(倒序) for j 减去已知元素 除到右边; #incl ...
- BZOJ 1013 球形空间产生器(高斯消元)
时间限制: 1 Sec 内存限制: 128 MB 提交: 11 解决: 7 [提交] [状态] [命题人:admin] 题目描述 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被 ...
- bzoj1013,luogu4035-[JSOI2008]球形空间产生器【高斯消元】
正题 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=3534 https://www.luogu.org/problem/P4035 题 ...
- BZOJ.1013.[JSOI2008]球形空间产生器(高斯消元)
题目链接 HDU3571 //824kb 40ms //HDU3571弱化版 跟那个一比这个太水了,练模板吧. //列出$n+1$个二次方程后两两相减,就都是一次方程了. #include <c ...
最新文章
- HarmonyOS Text设置换行
- 树上启发式合并问题 ---- D. Tree and Queries[树上启发式合并+树状数组]
- python 拟合sigmoid曲线_Scipy-sigmoid曲线拟合
- python 离线下载和安装第三方库 .whl wheel 文件
- Java中谈尾递归--尾递归和垃圾回收的比较
- Android四种启动模式
- 学习笔记(14):Python网络编程并发编程-文件传输功能实现
- 从像素坐标到相机坐标_鱼眼相机模型EUCM(一)
- jenkins -ant-svn 自动化持续部署——web应用war包 ant build.xml配置
- 一篇文章搞定java序列化机制
- axios 请求接口获取文件流数据导出数据到excel,解决乱码
- 抛开百度、知乎等都找不到连接不上服务器远程桌面的原因
- 七大江河水系--珠江
- 毕业设计之 --- 基于设深度学习的人脸性别年龄识别系统
- 一篇文章搞懂数据仓库:数据治理(目的、方法、流程)
- Taq DNA聚合酶的种类与应用现状
- 微信公众平台开发[5] —— 微信扫码支付介绍
- 【CTF】【渗透】【msf】三、绕过杀毒软件技巧
- 3D塔防游戏实现 5.2 3D怪物死亡(Feekood语言)
- 机动车排放微观控制-汽油机内净化技术
热门文章
- 网络推广外包专员如何通过网络推广外包提升用户推送打开率?
- php 获取数组最小值,php 获取数组中最小的值与键名的方法
- java打印图片到页面_在Java中打印BufferedImage的正确方法
- c++ 编译添加dll_linux下编写C/C++代码须知———串讲
- 轨道阱 matlab,赛默飞四极杆-轨道阱液质联用仪核心参数详解
- 开发日记-20190626 Linux系统管理技术手册(第二版) 第一章习题答案(个人版)
- linkerd——针对java的为微服务提供可靠性的proxy,服务发现重试LB等
- Scrum介绍——续
- cayley 图数据库
- Mac的移动硬盘不能装载该如何解决?