求圆神饶恕~>_<

根据半径相等的关系建立n+1个二次方程,

然后每个和前一个相减消去二次项,get n个线性方程。

#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
#define N 11
int n;
double B[N][N+1],A[N][N+1],x[N],b[N],pl[N+1][N];
double sqr(double x){return x*x;}
void guass_jordan()
{memcpy(B,A,sizeof(A));for(int i=1;i<=n;++i)B[i][n+1]=b[i];for(int i=1;i<=n;++i)//枚举:正在消除第i个未知数,之后第i个方程废掉,矩阵行、列-1{int pivot=i;for(int j=i+1;j<=n;++j)//枚举j:把正在处理的未知数的系数的绝对值最大的方程换到第i行if(fabs(B[j][i])>fabs(B[pivot][i]))pivot=j;swap(B[i],B[pivot]);//if(fabs(B[i][i])<EPS)//若所有(最大)的该未知数系数为0,说明少一个未知数,有无穷多解for(int j=i+1;j<=n+1;++j)B[i][j]/=B[i][i];for(int j=1;j<=n;++j)if(i!=j)//枚举所有的方程,从第j个方程中消去第i个未知数for(int k=i+1;k<=n+1;++k)//依次把第j个方程中的第k个未知数减去应减的数值B[j][k]-=B[j][i]*B[i][k];}for(int i=1;i<=n;++i) x[i]=B[i][n+1];
}
int main()
{scanf("%d",&n);for(int i=1;i<=n+1;++i){for(int j=1;j<=n;++j)scanf("%lf",&pl[i][j]);if(i>1)for(int j=1;j<=n;++j){b[i-1]+=sqr(pl[i-1][j])-sqr(pl[i][j]);A[i-1][j]=2.0*pl[i-1][j]-2.0*pl[i][j];}}guass_jordan();for(int i=1;i<n;++i)printf("%.3f ",x[i]);printf("%.3f\n",x[n]);return 0;
}

转载于:https://www.cnblogs.com/autsky-jadek/p/4343662.html

【高斯消元】bzoj1013 [JSOI2008]球形空间产生器sphere相关推荐

  1. 【高斯消元】[JSOI2008]球形空间产生器sphere

    [JSOI2008]球形空间产生器sphere 省选难度的板子 + 普及思维 = 紫题 (没毛病 日推天天推紫题再见了同学们我自请退群 为什么要我一个三维生物想象n维空间呢 以二维举例(糊一波我的手稿 ...

  2. bzoj1013 [JSOI2008]球形空间产生器sphere

    bzoj1013 [JSOI2008]球形空间产生器sphere 原题链接 题解 对\(k\in[2,n]\)列方程 \[\sum_{i=1}^{n}x_{i,0}(2x_{i,k}-2x_{i,k- ...

  3. 高斯消元——解线性方程组+球形空间产生器+开关问题

    传送门:https://www.acwing.com/activity/content/11/ 思路: 把原矩阵变成阶梯型矩阵解题步骤: 1.找到绝对值最大的一行. 2.将该行和最上面未处理好的一行交 ...

  4. [2018.12.18]BZOJ1013 [JSOI2008]球形空间产生器sphere

    设中心点坐标\(B=(b_1,b_2,b_3,...,b_n)\),球面上的点的坐标A=\((a_1,a_2,a_3,...,a_n)\) 则 \(dist_{A,B}=\sqrt{(a_1-b_1) ...

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

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

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

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

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

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

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

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

  9. BZOJ 1013 JSOI2008 球形空间产生器sphere 高斯消元

    题目大意:给定n维空间下的n+1个点,求这n个点所在的球面的球心 以前尝试了非常久的模拟退火0.0 至今仍未AC 0.0 今天挖粪涂墙怒学了高斯消元-- 我们设球心为X(x1,x2,...,xn) 如 ...

最新文章

  1. 用 GDI 操作 EMF 文件[2]: PlayEnhMetaFile、DeleteEnhMetaFile
  2. Codeforces 1408 D. Searchlights(优化DP、思维)
  3. 2011年5月19日盘后分析:把握行情运行主线 静待大盘明确信号
  4. argis中4波段影像变3波段
  5. Java线程面试题TOP50
  6. Varnish——CDN推送平台(web页面批量清除缓存)
  7. Service Mesh 如何重定义云原生计算?阿里服务网格技术大揭秘
  8. 深度学习剖根问底:SGD算法详解
  9. 论需求分析方法及应用--系统分析师
  10. 微信测试账户申请以及测试
  11. 卡尔曼滤波原理介绍及算法实现
  12. 积分商城功能表设计结构以及积分功能模块
  13. 微信小程序7-云存储
  14. Ubuntu下vscode配置OpenGL(使用glfw+glad)
  15. 【已解决】格式化SD卡提示“这张磁盘有写保护”,试过将SD开关拨向两边,均失败。
  16. android stl 3d模型,3D文件转化为STL文件 - 魔猴网
  17. 2022华数杯B题论文思路分析+完整代码(水下机器人组装计划)(一二问答案接出来和标准答案一样)(问题三四逼近正确答案)(完整论文,代码可直接跑)
  18. DIY智能小车篇(一):结构模块
  19. pgpool-ii的安装与使用
  20. 携程显示连接不到服务器,携程:网络故障由员工错误操作导致

热门文章

  1. 微服务架构基本介绍与微服务设计模式
  2. Spring Cloud 微服务实战系列-Spring Boot再次入门(一)
  3. JVM优化系列-JVM G1 垃圾收集器
  4. [eclipse]Syntax error on token ;,{ expected after this token
  5. FileItem类的常用方法
  6. 内存对齐 | 原来字段顺序还能影响结构体占用的内存空间
  7. Go Web编程--解析JSON请求和生成JSON响应
  8. commons-io实现流的拷贝
  9. 下载并导入mysql提供的测试数据库employees
  10. 解决方案:Lua环境搭建