分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

[JSOI2008]球形空间产生器

发布时间:2023-09-06 01:46责任编辑:顾先生关键词:暂无标签

[[JSOI2008]球形空间产生器](https://www.luogu.org/problemnew/show/P4035)

高斯消元搞一搞

#include<cstdio>#include<cstring>#include<algorithm>const int maxn = 17;int n;double loc[maxn][maxn];double st[maxn],x[maxn];void gauss() { ???int t; ???for(int i=1;i<=n;++i) { ???????t=i; ???????for(int j=i+1;j<=n;++j) if(loc[j][i]>loc[t][i]) t=j; ???????if(t!=i) for(int j=i;j<=n+1;++j) std::swap(loc[t][j],loc[i][j]); ???????for(int j=i+1;j<=n;++j) { ???????????double tmp=loc[i][i]/loc[j][i]; ???????????for(int k=i+1;k<=n+1;++k) loc[j][k]=loc[i][k]-tmp*loc[j][k]; ???????} ???} ???for(int i=n;i>=1;--i) { ????????for(int j=i+1;j<=n;++j) loc[i][n+1]-=x[j]*loc[i][j]; ???????x[i]=loc[i][n+1]/loc[i][i]; ???}}int main() { ???scanf("%d",&n); ???for(int i=1;i<=n;++i)scanf("%lf",&st[i]); ???for(int i=1;i<=n;++i) ????????for(int j=1;j<=n;++j) { ???????????double tmp; ???????????scanf("%lf",&tmp); ???????????loc[i][j]=2*(st[j]-tmp); ???????????loc[i][n+1]+=st[j]*st[j]-tmp*tmp; ???????} ???gauss(); ???for(int i=1;i<=n;++i) printf("%.3lf ",x[i]); ???return 0;}

[JSOI2008]球形空间产生器

原文地址:https://www.cnblogs.com/sssy/p/8594148.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved