题目大意:给定n维空间下的n+1个点,求这n个点所在的球面的球心

以前尝试了非常久的模拟退火0.0 至今仍未AC 0.0

今天挖粪涂墙怒学了高斯消元……

我们设球心为X(x1,x2,...,xn)

如果有两点A(a1,a2,...,an)和B(b1,b2,...,bn)

那么我们能够得到两个方程

(x1-a1)^2+(x2-a2)^2+...+(xn-an)^2=r^2

(x1-b1)^2+(x2-b2)^2+...+(xn-bn)^2=r^2

这些方程都是二次的,无法套用高斯消元

可是我们能够做一些处理 将上面两个方程相减可得

(a1-b1)x1+(a2-b2)x2+...+(an-bn)xn=[ (a1^2-b1^2)+(a2^2-b2^2)+...+(an^2-bn^2) ]/2

r被消掉,n个方程,n个未知数套用高斯消元模板就可以

一直在纠结模拟退火为啥切不掉0.0

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 20
using namespace std;
int n;
double pos[M],a[M][M],ans[M];
int main()
{int i,j,k;cin>>n;for(i=1;i<=n;i++)scanf("%lf",&pos[i]);for(i=1;i<=n;i++){double temp[M];for(j=1;j<=n;j++){scanf("%lf",&temp[j]);a[i][j]=pos[j]-temp[j];a[i][n+1]+=pos[j]*pos[j]-temp[j]*temp[j];}a[i][n+1]/=2;}for(i=1;i<=n;i++){k=0;for(j=i;j<=n;j++)if( fabs(a[j][i])>fabs(a[k][i]) )k=j;for(j=1;j<=n+1;j++)swap(a[i][j],a[k][j]);for(j=i+1;j<=n;j++){double temp=-a[j][i]/a[i][i];for(k=i;k<=n+1;k++)a[j][k]+=a[i][k]*temp;}}for(i=n;i;i--){for(j=n;j>i;j--)a[i][n+1]-=a[i][j]*ans[j];ans[i]=a[i][n+1]/a[i][i];}for(i=1;i<=n;i++)printf("%.3lf%c",ans[i],i==n?'\n':' ');
}

BZOJ 1013 JSOI2008 球形空间产生器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( 高斯消元 )

    可以得到N条N元一次方程, 高斯消元就OK了..时间复杂度O(N3) ----------------------------------------------------------------- ...

  3. bzoj 1013: [JSOI2008]球形空间产生器sphere(高斯消元)

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 5598  Solved: 2943 [Su ...

  4. luogu P4035 [JSOI2008]球形空间产生器(高斯消元 / 模拟退火)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 数据范围只开到了10,而且是经典的力学结构,所以我们可以用模拟退火,可以做一下 nnn 维的正交分解h ...

  5. 【BZOJ】1013: [JSOI2008]球形空间产生器sphere(高斯消元)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1013 只要列出方程组就能套高斯来解了. 显然距离相等,所以开不开平方都无所谓. b表示圆心,可列 s ...

  6. 【BZOJ】1013 [JSOI2008]球形空间产生器sphere

    [算法]高斯消元 [题解] 建矩阵; for i 找到同列绝对值最大数字; 交换; for k(行) j(列)(倒序)   除法; for i(倒序) for j 减去已知元素 除到右边; #incl ...

  7. BZOJ 1013 球形空间产生器(高斯消元)

    时间限制: 1 Sec  内存限制: 128 MB 提交: 11  解决: 7 [提交] [状态] [命题人:admin] 题目描述 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被 ...

  8. bzoj1013,luogu4035-[JSOI2008]球形空间产生器【高斯消元】

    正题 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=3534 https://www.luogu.org/problem/P4035 题 ...

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

    题目链接 HDU3571 //824kb 40ms //HDU3571弱化版 跟那个一比这个太水了,练模板吧. //列出$n+1$个二次方程后两两相减,就都是一次方程了. #include <c ...

最新文章

  1. php类属性命名驼峰还是下划线,PHP实现驼峰命名和下划线命名互转
  2. asp+MsSQL2000模拟Html静态文件缓存
  3. EdgeConneX公司在都柏林数据中心园区新建数据中心
  4. JVM 的内存模型及jstat命令的使用
  5. TFS2010配置SQLServer2008R2 tf255049错误
  6. 线程也不是越多越好,多少是好?
  7. GARFIELD@10-16-2004
  8. Linux学习笔记---移植官方uboot步骤(一)
  9. spring boot 使用 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别
  10. 利用iTextSharp组件给PDF文档添加图片水印,文字水印
  11. android studio乱码
  12. 数组的普通查找与折半查找
  13. Power BI——数据建模案例分析
  14. 离散ziggurat算法python实现_SLAM的数学基础(3):几种常见的概率分布的实现及验证。...
  15. 学妹跑过来问我为啥Xshell 打不开了,让我帮她处理下【手把手讲解】
  16. js 根据公历日期 算出农历_利用Javascript获取当前日期的农历日期
  17. 计算机组装与维修(一)
  18. c++实现atoi()和itoa()函数(字符串和整数转化)
  19. 职业学校计算机教学创新论文题目,信息技术论文题目大全
  20. 服务器维护 志愿填报时间顺延,因系统维护 西藏高考志愿填报截止时间顺延两日...

热门文章

  1. 特来电CMDB应用实践
  2. 机器学习-线性回归与梯度下降
  3. 神经网络学习笔记-02-循环神经网络
  4. jenkins邮件通知功能
  5. 页面加载完毕相关信息淡入效果
  6. 【effective c++读书笔记】【第7章】模板和泛型编程(3)
  7. Android---组件篇---Handler的使用(1)[转]
  8. 热键枚举Winform程序全局热键与局部热键(键盘快捷键的捕获)
  9. 关于AVR单片机熔丝位的设置和拯救方法大全 AVR单片机熔丝位的设置和详细的拯救方法...
  10. 海康威视连续采图设置ROI局部显示_c#