分享web开发知识

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

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

[JSOI2008]球形空间产生器sphere

发布时间:2023-09-06 01:35责任编辑:苏小强关键词:暂无标签

Sol

设一个dis,就有n+1个方程,消掉dis,就只有n个方程,组成一个方程组,高斯消元就好(建议建立方程时推一下,很简单)

# include <bits/stdc++.h># define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long ll;int n;double a[20][20], b[20][20], ans[20], sqr[20];int main(RG int argc, RG char *argv[]){ ???scanf("%d", &n); ???for(RG int i = 0; i <= n; ++i) ???????for(RG int j = 1; j <= n; ++j) ???????????scanf("%lf", &b[i][j]), sqr[i] += b[i][j] * b[i][j]; ???for(RG int i = 1; i <= n; ++i){ ???????for(RG int j = 1; j <= n; ++j) ???????????a[i][j] = 2 * (b[i][j] - b[0][j]); ???????a[i][n + 1] = sqr[i] - sqr[0]; ???} ???for(RG int i = 1; i < n; ++i) ???????for(RG int j = i + 1; j <= n; ++j){ ???????????RG double div = a[j][i] / a[i][i]; ???????????for(RG int k = 1; k <= n + 1; ++k) a[j][k] -= a[i][k] * div; ???????} ???for(RG int i = n; i; --i){ ???????ans[i] = a[i][n + 1] / a[i][i]; ???????for(RG int j = 1; j < i; ++j) a[j][n + 1] -= ans[i] * a[j][i]; ???} ???for(RG int i = 1; i <= n; ++i){ ???????printf("%.3lf", ans[i]); ???????if(i != n) putchar(' '); ???} ???return 0;}

[JSOI2008]球形空间产生器sphere

原文地址:https://www.cnblogs.com/cjoieryl/p/8250711.html

知识推荐

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