P4035 [JSOI2008]球形空间产生器
时间:2019-08-27
本文章向大家介绍P4035 [JSOI2008]球形空间产生器,主要包括P4035 [JSOI2008]球形空间产生器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
看到题目,啥,高维球体?
确定球心?模拟退火,爬山走起
emm,直接解方程就好了
首先方程有二次项,但是发现给了 $n+1$ 个方程
所以随便拿一个出来和其他 $n$ 个方程减一下,就把 $x^2$ 给消掉了
然后就可以高斯消元了
化完以后方程的形式大概就是 $\sum_{i=1}^{n}p[t][i]^2-p[k][i]^2=\sum_{i=1}^{n}2(p[t][i]-p[k][i])x_i$
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; typedef long long ll; typedef double db; inline int read() { int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); } return x*f; } const int N=27; int n; db p[N][N],A[N][N],ans[N]; void Gauss() { for(int i=1;i<=n;i++) { int pos=i; for(int j=i+1;j<=n;j++) if(fabs(A[j][i])>fabs(A[pos][i])) pos=j;// swap(A[i],A[pos]); for(int j=i+1;j<=n;j++) { db t=A[j][i]/A[i][i]; for(int k=i;k<=n+1;k++) A[j][k]-=A[i][k]*t; } } for(int i=n;i;i--) { ans[i]=A[i][n+1];// for(int j=i+1;j<=n;j++) ans[i]-=A[i][j]*ans[j]; ans[i]/=A[i][i];// } } int main() { n=read(); for(int i=1;i<=n+1;i++) for(int j=1;j<=n;j++) scanf("%lf",&p[i][j]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) A[i][j]=(p[i][j]-p[n+1][j])*2, A[i][n+1]+=(p[i][j]*p[i][j]-p[n+1][j]*p[n+1][j]); Gauss(); for(int i=1;i<=n;i++) printf("%.3lf ",ans[i]); return 0; }
原文地址:https://www.cnblogs.com/LLTYYC/p/11417680.html
- 包学会之浅入浅出Vue.js:升学篇
- 一个只有99行代码的JS流程框架 (一)
- 【腾讯云的1001种玩法】试用腾讯云 Windows Server 2012 R2 镜像的几点经验分享
- 一个只有99行代码的JS流程框架(二)
- 看书的时候如何调试书中简单的C+代码?
- gcForest 集成学习方法的 Python 实现
- 云端架构师养成系列之一:高性能云硬盘入门与实战(视频)
- 云端架构师养成系列之二:云端负载均衡上手与实践
- 微信 PaxosStore:海量数据冷热分级架构
- 使用腾讯云容器服务来构建简单web service
- 使用 plotly 绘制数据图表
- 基于云计算的 CV 移动交互应用研究:头部姿态估计综述(2)
- 使用 trie 树实现简单的中文分词
- 重磅发布!2017年度 DevOps 现状调查报告中文完整版!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法