LG4035/BZOJ1013 「JSOI2008」球形空间产生器 高斯消元
2024-08-24 12:20:35
问题描述
题解
设答案为\((p_1,p_2,p_3,...,p_n)\)
因为是一个球体,令其半径为\(r\),则有
\[\sum_{i=1}^{n}{(a_i-p_i)}^2={\rm dis}^2
\]
\]
拆式子可得
\[\sum_{i=1}^{n}a_i^2-2\times\sum_{i=1}^{n}{a_ip_i}=\sum_{i=1}^{n}p_i^2-{\rm dis}^2
\]
\]
于是可以构造出新的方程矩阵:
\[f_{i,j}=2 \times (a_{i+1,j}-a_{i,j})
\]
\]
\[f_{i,n+1}=\sum_{j=1}^n a_{i+1,j}^2-a_{i,j}^2
\]
\]
\(\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;
}
最新文章
- Dependency Scope
- JavaScript的学习5
- Linux服务器管理: 系统的定时任务crond
- JQuery执行DOM批量克隆并插入的提效方法
- Effective STL
- API文档管理工具-数据库表结构思考.
- PowerDesigner中遍历物理模型中的所有表,检查表代码、字段代码
- 在XP系统中自带的 msvcrt.dll 和 Vista 中的 msvcrt.dll 版本不同,导致抛出的异常不同
- quartus中查看网表
- javascript对象继承的实现
- debian安装vld来查看Opcode,PHP调优。
- 从0到1一步步搭建代码质量检测系统~iOS
- 基于Nginx的Rtmp流媒体服务器环境搭建
- node.js 下依赖Express 实现post 4种方式提交参数
- 基于redis实现tomcat8及以上版本的tomcat集群的session持久化实现(tomcat-redis-session-manager二次开发)
- eclipse中启动项目报内存溢出问题通过修改配置解决
- AVH IP网络广播系统
- go基础知识之变量,类型,常量,函数
- 规范大于编码-我的javaWeb开发规范
- python爬虫 发送定时气象预报
热门文章
- Haproxy 构建负载均衡集群
- Codeforces Round #552 (Div. 3) EFG(链表+set,dp,枚举公因数)
- MongoDB创建数据库和删除数据库05-14学习笔记
- html-加水印--watermark--代码测试
- tensorflow之tf.to_float
- Chrome 手动安装.crx插件
- mysql批量更新数据(性能优化) 第一种方式
- 云原生生态周报 Vol. 13 | Forrester 发布企业级容器平台报告
- [Delphi]无边框窗口最大化不挡任务栏方法
- 原生PHP和MYSQL练习登陆验证和查询数据到表格