首页 > 其他分享 >BZOJ 1013([JSOI2008]球形空间产生器sphere-gauss消元练习)

BZOJ 1013([JSOI2008]球形空间产生器sphere-gauss消元练习)

时间:2022-10-25 11:06:07浏览次数:75  
标签:int 0.0 JSOI2008 gauss sphere MAXN include define


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


Time Limit: 1 Sec   Memory Limit: 162 MB

Submit: 1181  

Solved: 654

[​​Submit​​][​​Status​​][​​Discuss​​]


Description


有一个球形空间产生器能够在n维空间中产生一个坚硬的球体。现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁这个球形空间产生器。


Input


第一行是一个整数,n。 接下来的n+1行,每行有n个实数,表示球面上一点的n维坐标。每一个实数精确到小数点后6位,且其绝对值都不超过20000。


Output


有且只有一行,依次给出球心的n维坐标(n个实数),两个实数之间用一个空格隔开。每个实数精确到小数点后3位。数据保证有解。你的答案必须和标准输出一模一样才能够得分。


Sample Input


2
0.0 0.0
-1.0 1.0
1.0 0.0


Sample Output


0.500 1.500

数据规模:
对于40%的数据,1<=n<=3
对于100%的数据,1<=n<=10
提示:给出两个定义:
1、 球心:到球面上任意一点距离都相等的点。
2、 距离:设两个n为空间上的点A, B的坐标为(a1, a2, …, an), (b1, b2, …, bn),则AB的距离定义为:dist = sqrt( (a1-b1)^2 + (a2-b2)^2 + … + (an-bn)^2 )

gauss消元


#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<functional>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std;
#define MAXN (10+10)
#define MAXAi (20000)
#define eps (0.0000001)
#define For(i,n) for(int i=1;i<=n;i++)
double sqr(double x){return x*x;}
int n;
double a[MAXN][MAXN],f[MAXN][MAXN]={0.0};
int gauss()
{
For(i,n)
{
if (abs(f[i][i])<eps)
{
int p=i+1;
for (int j=i+1;j<=n;j++) if (abs(f[j][i])>abs(f[p][i])) j=p;
swap(f[p],f[i]);//Waiting for change
}
if (abs(f[i][i])<eps) continue;
For(j,n)
if (i^j)
{
double p=f[j][i]/f[i][i];
For(k,n+1) f[j][k]-=p*f[i][k];
}
}
}
int main()
{
cin>>n;
For(i,n+1) For(j,n) cin>>a[i][j];
For(i,n) For(j,n) f[i][j]=a[i][j]-a[i+1][j],f[i][n+1]+=sqr(a[i][j])-sqr(a[i+1][j]);
For(i,n) f[i][n+1]/=2;
gauss();
For(i,n-1) printf("%.3lf ",f[i][n+1]/f[i][i]);
printf("%.3lf\n",f[n][n+1]/f[n][n]);
}



标签:int,0.0,JSOI2008,gauss,sphere,MAXN,include,define
From: https://blog.51cto.com/u_15724837/5794145

相关文章

  • POJ 1222(Gauss消元xor版)
    EXTENDEDLIGHTSOUTDescriptionLightsOut就是下图的游戏,给你一个5*6的矩阵. 你的目标是把灯全关上. 0表示关,1表示开.Input第一行为数据......
  • BZOJ 3503([Cqoi2014]和谐矩阵-gauss消元)
    Description我们称一个由0和1组成的矩阵是和谐的,当且仅当每个元素都有偶数个相邻的1。一个元素相邻的元素包括它本身,及他上下左右的4个元素(如果存在)。给定矩阵的行数和......
  • 华为云数据库 GaussDB(for MySQL),让企业无忧数据恢复
    可能很多网络运营单位在数字化转型过程中都遇见过因为停电导致信息数据丢失,进而致使整个网络运营单位的云上业务被迫中断这样的问题?这时候网络运营单位需要探索到业务中断......
  • NS-Atmosphere payload Programmer
    NS-Atmosphere payloadProgrammer通过该软件将任意payload烧写到NS-Atmosphere注入器中,兼容windows,ubuntu,苹果MACOS官网跑路了...备份下... 阿里云盘......
  • 【openGauss】运维常用的SQL
    一、查模式二、查对象查看某模式下的表名selecttablenamefrompg_tableswhereschemaname='hsjc_bi';查看某表的字段SELECTA.attnameASNAME,format_t......
  • webSphere下关闭项目后定时任务还在继续执行
     一、问题描述程序描述:程序中有一个定时任务(java.util.Timer)调用存储过程,一天调用一次,存储过程内部会插入"执行开始"和"执行结束"的记录到数据库的日志表中问题描述:......
  • ShardingSphere的配置中心
    ShardingSphere的配置中心本篇文章源码基于4.0.1版本使用配置中心来管理配置文件非常方便灵活,实现配置信息的动态加载,ShardingSphere支持很多配置中心,包括Apollo、Zooke......
  • ShardingSphere的注册中心
    ShardingSphere的注册中心本篇文章源码基于4.0.1版本注册中心在ShardingSphere的作用就是用来管理各种数据源,在使用的时候,所有数据源通过向注册中心的指定目录下创建节......
  • ShardingSphere与链路追踪
    ShardingSphere与链路追踪本篇文章源码基于4.0.1版本ShardingSphere的功能非常强大,它不仅与注册中心、配置中心相结合的很好,它还支持链路追踪,了解过链路追踪技术的肯定......
  • 国货当自强,华为云数据库GaussDB(for MySQL)的崛起
    企业数据经过长时间的累积下,传统数据库已经进入性能和容量瓶颈,如计算资源的浪费、存储资源的浪费、网络资源的浪费、添加只读的进程缓慢、复制延迟、备份恢复速度慢等等,这些......