分享web开发知识

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

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

BZOJ 1013[JSOI2008]球形空间产生器sphere

发布时间:2023-09-06 01:11责任编辑:熊小新关键词:暂无标签

我(不会计算几何):这是不是计算几何呀(绝望脸)。

LLJ大佬(瞟了一眼):这是高斯消元呀。

高斯消元。

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>#include<queue>#include<vector>typedef long long LL;using namespace std;const int maxn=15;int n;double x[maxn][maxn],f[maxn][maxn];void solve() { ???for(int i=1;i<=n;i++) { ???????int now=i; ???????for(int j=i;j<=n;j++) ????????????if(f[j][i]>f[now][i]) now=j; ???????if(now!=i) { ???????????for(int j=i;j<=n+1;j++) ????????????????swap(f[now][j],f[i][j]); ???????????now=i; ???????} ???????if(!f[i][i]) return; ???????for(int j=i+1;j<=n+1;j++) f[i][j]/=f[i][i]; ???????f[i][i]=1; ???????for(int j=i+1;j<=n;j++) { ??????????for(int k=i+1;k<=n+1;k++) ???????????????f[j][k]-=f[i][k]*f[j][i]; ??????????f[j][i]=0; ???????} ???} ???for(int i=n;i>=1;i--) ????????for(int j=i+1;j<=n;j++) ????????????f[i][n+1]-=f[i][j]*f[j][n+1];}int main(){ ???//freopen(".in","r",stdin); ???//freopen(".out","w",stdout); ???scanf("%d",&n); ???for(int i=1;i<=n+1;i++) ????????for(int j=1;j<=n;j++) scanf("%lf",&x[i][j]); ???for(int i=1;i<=n;i++) ????????for(int j=1;j<=n;j++) { ???????????f[i][j]=2*(x[i][j]-x[i+1][j]); ???????????f[i][n+1]+=(x[i][j]*x[i][j]-x[i+1][j]*x[i+1][j]); ???????} ???solve(); ???for(int i=1;i<n;i++) printf("%.3lf ",f[i][n+1]); ???printf("%.3lf\n",f[n][n+1]); ???return 0;}
View Code

BZOJ 1013[JSOI2008]球形空间产生器sphere

原文地址:http://www.cnblogs.com/Achenchen/p/7531906.html

知识推荐

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