LG4035/BZOJ1013 「JSOI2008」球形空间产生器 高斯消元
问题描述
题解
设答案为\((p_1,p_2,p_3,...,p_n)\)
因为是一个球体,令其半径为\(r\),则有
\]
拆式子可得
\]
于是可以构造出新的方程矩阵:
\]
\]
\(\mathrm{Code}\)
#include<bits/stdc++.h>
using namespace std;
void read(int &x){
x=0;char ch=1;int fh;
while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();
if(ch=='-') fh=-1,ch=getchar();
else fh=1;
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+ch-'0';
ch=getchar();
}
x*=fh;
}
#define maxn 107
int n;
double a[maxn][maxn],bf[maxn][maxn];
int pla;
int main(){
ios::sync_with_stdio(0);
cin>>n;
for(register int i=1;i<=n+1;i++){
for(register int j=1;j<=n;j++) cin>>bf[i][j];
}
for(register int i=1;i<=n+1;i++){
for(register int j=1;j<=n;j++){
a[i][j]=2*(bf[i+1][j]-bf[i][j]);
a[i][n+1]+=bf[i+1][j]*bf[i+1][j]-bf[i][j]*bf[i][j];
}
}
for(register int i=1;i<=n;i++){
pla=i;
while(pla<=n&&a[pla][i]==0) pla++;
if(pla==n+1){
puts("No Solution");return 0;
}
for(register int j=1;j<=n+1;j++) swap(a[i][j],a[pla][j]);
double tmp=a[i][i];
for(register int j=1;j<=n+1;j++) a[i][j]=a[i][j]/tmp;
for(register int j=1;j<=n;j++){
if(i==j) continue;
double rp=a[j][i];
for(register int k=1;k<=n+1;k++){
a[j][k]=a[j][k]-rp*a[i][k];
}
}
}
for(register int i=1;i<=n;i++){
cout<<fixed<<setprecision(3)<<a[i][n+1]<<" ";
}
return 0;
}
LG4035/BZOJ1013 「JSOI2008」球形空间产生器 高斯消元的更多相关文章
- 【BZOJ1013】【JSOI2008】球形空间产生器 高斯消元
题目描述 有一个\(n\)维空间中的球,告诉你球面上\(n+1\)个点的坐标,求球心的坐标. \(n\leq 10\) 题解 设\(a_{i,j}\)为第\(i\)个点的第\(j\)维坐标,\(i=0 ...
- BZOJ.1013.[JSOI2008]球形空间产生器(高斯消元)
题目链接 HDU3571 //824kb 40ms //HDU3571弱化版 跟那个一比这个太水了,练模板吧. //列出$n+1$个二次方程后两两相减,就都是一次方程了. #include <c ...
- LG2447/BZOJ1923 「SDOI2010」外星千足虫 高斯消元
问题描述 LG2447 BZOJ1923 题解 显然是一个高斯消元,但是求的东西比较奇怪 发现这个方程组只关心奇偶性,于是可以用一个\(\mathrm{bitset}\)进行优化,用xor来进行消元操 ...
- BZOJ1013 JSOI2008 球形空间产生器sphere 【高斯消元】
BZOJ1013 JSOI2008 球形空间产生器sphere Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点 ...
- 【BZOJ1013】【JSOI2008】球形空间产生器sphere(高斯消元)
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1600 Solved: 860[Submi ...
- BZOJ1013 [JSOI2008]球形空间产生器sphere(高斯消元)
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4846 Solved: 2525[Subm ...
- [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)
Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...
- BZOJ-1013 球形空间产生器sphere 高斯消元+数论推公式
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3662 Solved: 1910 [Subm ...
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
1013: [JSOI2008]球形空间产生器sphere Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Judg ...
随机推荐
- 01 学习数据分析的python库
网页爬取 1.requests 2.BeautifulSoup 3.Scrapy 科学计算与数据分析 1.scipy 2.numpy 3.pandas 机器学习和深度学习 1.Scikit-learn ...
- 【搜索】N皇后问题
原题传送门 思路 很经典的搜索题,但本蒟蒻卡了1个多小时,搜索部分很简单,但是判重的部分是真的蛋疼,我写了一个高效率的判重算法,但是无论检查多少遍都没有问题的算法却总是WA......后来我干脆写了一 ...
- Vue+Element UI 实现视频上传
一.前言 项目中需要提供一个视频介绍,使用户能够快速.方便的了解如何使用产品以及注意事项. 前台使用Vue+Element UI中的el-upload组件实现视频上传及进度条展示,后台提供视频上传AP ...
- JeeSite | 访问控制权限
在各种后台系统中都会涉及到权限的管控,从功能权限的管控,到数据权限的管控,都是为了让系统的在使用的过程中更加的安全.功能权限管控是对针对不同的角色可以进行不同的功能操作,而数据权限管控是针对不同的角色 ...
- git commit 提交失败
git commit -m 'xxx' 报错 报错信息 当前分支:master 远程分支:gitlib.xxx error: cannot spawn .git/hooks/commit-msg: N ...
- 明解C语言 入门篇 第十二章答案
练习12-1 /* 用表示学生的结构体来显示高尾的信息 */ #include <stdio.h> #define NAME_LEN 64 /* 姓名的字符数 */ /*=== 表示学生的 ...
- Vue.js 源码分析(十五) 指令篇 v-bind指令详解
指令是Vue.js模板中最常用的一项功能,它带有前缀v-,比如上面说的v-if.v-html.v-pre等.指令的主要职责就是当其表达式的值改变时,相应的将某些行为应用到DOM上,先介绍v-bind指 ...
- Spring Boot 使用 Log4j2 & Logback 输出日志到 EKL
文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...
- Python游戏开发——打砖块
打砖块游戏向来大家也不会很陌生,今天来用python来开发一下这个小游戏 1.引用对应数据库 import pygame from pygame.locals import * import sys, ...
- 在QT中使用FFmpeg库的部分报错问题
win32: LIBS += -L$$PWD/../ffmpeg-win32-dev/lib/ -lavutil win32: LIBS += -L$$PWD/../ffmpeg-win32-dev/ ...