luogu P4035 [JSOI2008]球形空间产生器(高斯消元 / 模拟退火)
整理的算法模板合集: ACM模板
点我看算法全家桶系列!!!
实际上是一个全新的精炼模板整合计划
数据范围只开到了10,而且是经典的力学结构,所以我们可以用模拟退火,可以做一下 nnn 维的正交分解hhh,经典物理题。
然后实际上本题就是一个高斯消元模板题
apple pencil用习惯了,普通的笔写起来,字丑见谅
我用的是普通的高斯消元模板,因为听说高斯 - 约旦消元法有可能会被卡掉,所以学了,但是一直不敢用QWQ
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <map>
#include <queue>
using namespace std;
typedef long long ll;
typedef int itn;
typedef pair<int, int>PII;
const int N = 2007, mod = 1e9 + 7, INF = 2.1e9;
const double eps = 1e-8;int n, m;
double b[N][N];//增广矩阵
double a[N][N];int guass(double a[][N])
{int c;//当前最左边的一列int r;//当前最上面的一行for(c = 1, r = 1; c <= n; ++ c){int t = r;for(int i = r + 1; i <= n; ++ i){if(fabs(a[i][c]) > fabs(a[t][c]))t = i;}if(fabs(a[t][c]) < eps)//等于0就下一个continue;//换到第一行(最上面的一行)for(int i = c; i <= n + 1; ++ i)swap(a[t][i], a[r][i]);//把该行第一个数变成 1(该行每一列都/=第c列的值)for(int i = n + 1; i >= c; -- i)a[r][i] /= a[r][c];//中间所有列(所有项)全部消掉for(int i = r + 1; i <= n; ++ i)if(fabs(a[i][c]) > eps)for(int j = n + 1; j >= c; -- j)a[i][j] -= a[r][j] * a[i][c];r ++ ;}if(r <= n){for(int i = r; i <= n; ++ i)if(fabs(a[i][n + 1]) > eps)//非零,无解return 2;return 1;//无穷多组解}//回代//行最简形矩阵for(int i = n; i >= 1; -- i)for(int j = i + 1; j <= n + 1; ++ j)a[i][n + 1] -= a[j][n + 1] * a[i][j]; return 0;
}int main()
{scanf("%d", &n);for(int i = 1; i <= n + 1; ++ i)for(int j = 1; j <= n; ++ j)scanf("%lf", &a[i][j]);for(int i = 1; i <= n; ++ i)for(int j = 1; j <= n; ++ j){b[i][j] = 2 * (a[i][j] - a[i + 1][j]);b[i][n + 1] += a[i][j] * a[i][j] - a[i + 1][j] * a[i + 1][j];}guass(b);for(int i = 1; i < n; ++ i)printf("%.3f ", b[i][n + 1]);printf("%.3f\n", b[n][n + 1]);return 0;
}
luogu P4035 [JSOI2008]球形空间产生器(高斯消元 / 模拟退火)相关推荐
- BZOJ.1013.[JSOI2008]球形空间产生器(高斯消元)
题目链接 HDU3571 //824kb 40ms //HDU3571弱化版 跟那个一比这个太水了,练模板吧. //列出$n+1$个二次方程后两两相减,就都是一次方程了. #include <c ...
- 高斯消元简单线性代数线性基学习记录
线性代数,唉 高斯消元 P4035 [JSOI2008]球形空间产生器 题目描述 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标 ...
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
1013: [JSOI2008]球形空间产生器sphere Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Judg ...
- 【高斯消元】球形空间产生器(luogu 4035/金牌导航 高斯消元-1)
球形空间产生器 luogu 4035 金牌导航 高斯消元-1 题目大意 给出n+1个n维的点,让你求一个点,使该点到所有点欧几里得距离相等 输入样例 2 0.0 0.0 -1.0 1.0 1.0 0. ...
- BZOJ 1013: [JSOI2008]球形空间产生器sphere( 高斯消元 )
可以得到N条N元一次方程, 高斯消元就OK了..时间复杂度O(N3) ----------------------------------------------------------------- ...
- bzoj 1013: [JSOI2008]球形空间产生器sphere(高斯消元)
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MB Submit: 5598 Solved: 2943 [Su ...
- 【高斯消元】[JSOI2008]球形空间产生器sphere
[JSOI2008]球形空间产生器sphere 省选难度的板子 + 普及思维 = 紫题 (没毛病 日推天天推紫题再见了同学们我自请退群 为什么要我一个三维生物想象n维空间呢 以二维举例(糊一波我的手稿 ...
- 【BZOJ】1013: [JSOI2008]球形空间产生器sphere(高斯消元)
http://www.lydsy.com/JudgeOnline/problem.php?id=1013 只要列出方程组就能套高斯来解了. 显然距离相等,所以开不开平方都无所谓. b表示圆心,可列 s ...
- BZOJ 1013 JSOI2008 球形空间产生器sphere 高斯消元
题目大意:给定n维空间下的n+1个点,求这n个点所在的球面的球心 以前尝试了非常久的模拟退火0.0 至今仍未AC 0.0 今天挖粪涂墙怒学了高斯消元-- 我们设球心为X(x1,x2,...,xn) 如 ...
最新文章
- 小学三年级上册计算机计划书,小学三年级班主任工作计划书
- Spring 中策略模式的 2 个经典应用,可以用来怼面试官了
- 省市级联基于jquery+json(转)
- Win7system登录打开计算机,Windows7系统system文件丢失导致开机黑屏如何解决
- Python os模块文件操作(二)
- C语言基础知识:printf的输出格式
- mysql error 1837_MySQL 主从复制错误1837
- s7300plc串口通信_s7-300串口通讯.ppt
- 微信小程序的组件 component开发,提高效率第三篇
- 最详细的SAI笔刷设置教程,非常全面详细!
- 饿了么神级UI组件库——Element-UI使用指南
- 计算机做无线AP共享文件,Windows 7妙用 笔记本变无线AP轻松共享
- html 加爱心符号,爱心符号大全
- 组合预测模型:bagging
- win7旗舰版恢复出厂设置没有修复计算机,教你win7旗舰版怎么恢复出厂设置
- CSP-S 2020 T1 P7075 儒略日
- 15-责任链模式Quarkus实现
- linux cnc 树莓派,谈谈LinuxCNC
- kestrel虚拟服务器,如何使Kestrel Web服务器监听非本地主机的请求?
- 20162316刘诚昊 队列课下作业
热门文章
- 强化学习与3D视觉结合新突破:高效能在线码垛机器人
- 最长不下降子序列(推广问题)
- 180615-精度计算BigDecimal
- 使用文件给swap增加空间
- 使用MSBuild实现完整daily build流程
- 为开发可穿戴设备 索尼收购了以色列芯片制造商
- 《Python数据分析与挖掘实战》一第1章 数据挖掘基础1.1 某知名连锁餐饮企业的困惑...
- VirtualBox虚拟机中启用usb3.0却无法显示u盘的解决方法
- Django中的Form
- VMware Coding Challenge: Possible Scores Summary: static