热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

洛谷P4035[JSOI2008]球形空间生成器(高斯消元法/模拟退火算法)

本文介绍了洛谷P4035[JSOI2008]球形空间生成器问题的解决方案,主要使用了高斯消元法和模拟退火算法。通过这两种方法,可以高效地求解多维空间中的球心位置。文章提供了详细的算法模板和实现代码,适用于ACM竞赛和其他相关应用场景。数据范围限制在10以内,确保了算法的高效性和准确性。

整理的算法模板合集: ACM模板


点我看算法全家桶系列!!!

实际上是一个全新的精炼模板整合计划




在这里插入图片描述
数据范围只开到了10,而且是经典的力学结构,所以我们可以用模拟退火,可以做一下 nnn 维的正交分解hhh,经典物理题。

然后实际上本题就是一个高斯消元模板题
在这里插入图片描述
apple pencil用习惯了,普通的笔写起来,字丑见谅

我用的是普通的高斯消元模板,因为听说高斯 - 约旦消元法有可能会被卡掉,所以学了,但是一直不敢用QWQ

#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
typedef int itn;
typedef pair<int, int>PII;
const int N &#61; 2007, mod &#61; 1e9 &#43; 7, INF &#61; 2.1e9;
const double eps &#61; 1e-8;int n, m;
double b[N][N];//增广矩阵
double a[N][N];int guass(double a[][N])
{int c;//当前最左边的一列int r;//当前最上面的一行for(c &#61; 1, r &#61; 1; c <&#61; n; &#43;&#43; c){int t &#61; r;for(int i &#61; r &#43; 1; i <&#61; n; &#43;&#43; i){if(fabs(a[i][c]) > fabs(a[t][c]))t &#61; i;}if(fabs(a[t][c]) < eps)//等于0就下一个continue;//换到第一行&#xff08;最上面的一行&#xff09;for(int i &#61; c; i <&#61; n &#43; 1; &#43;&#43; i)swap(a[t][i], a[r][i]);//把该行第一个数变成 1&#xff08;该行每一列都/&#61;第c列的值&#xff09;for(int i &#61; n &#43; 1; i >&#61; c; -- i)a[r][i] /&#61; a[r][c];//中间所有列&#xff08;所有项&#xff09;全部消掉for(int i &#61; r &#43; 1; i <&#61; n; &#43;&#43; i)if(fabs(a[i][c]) > eps)for(int j &#61; n &#43; 1; j >&#61; c; -- j)a[i][j] -&#61; a[r][j] * a[i][c];r &#43;&#43; ;}if(r <&#61; n){for(int i &#61; r; i <&#61; n; &#43;&#43; i)if(fabs(a[i][n &#43; 1]) > eps)//非零&#xff0c;无解return 2;return 1;//无穷多组解}//回代//行最简形矩阵for(int i &#61; n; i >&#61; 1; -- i)for(int j &#61; i &#43; 1; j <&#61; n &#43; 1; &#43;&#43; j)a[i][n &#43; 1] -&#61; a[j][n &#43; 1] * a[i][j]; return 0;
}int main()
{scanf("%d", &n);for(int i &#61; 1; i <&#61; n &#43; 1; &#43;&#43; i)for(int j &#61; 1; j <&#61; n; &#43;&#43; j)scanf("%lf", &a[i][j]);for(int i &#61; 1; i <&#61; n; &#43;&#43; i)for(int j &#61; 1; j <&#61; n; &#43;&#43; j){b[i][j] &#61; 2 * (a[i][j] - a[i &#43; 1][j]);b[i][n &#43; 1] &#43;&#61; a[i][j] * a[i][j] - a[i &#43; 1][j] * a[i &#43; 1][j];}guass(b);for(int i &#61; 1; i < n; &#43;&#43; i)printf("%.3f ", b[i][n &#43; 1]);printf("%.3f\n", b[n][n &#43; 1]);return 0;
}

推荐阅读
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • 本文探讨了在C++中如何有效地清空输入缓冲区,确保程序只处理最近的输入并丢弃多余的输入。我们将介绍一种不阻塞的方法,并提供一个具体的实现方案。 ... [详细]
  • 本文详细介绍了 org.apache.commons.io.IOCase 类中的 checkCompareTo() 方法,通过多个代码示例展示其在不同场景下的使用方法。 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本文详细介绍了C++中map容器的多种删除和交换操作,包括clear、erase、swap、extract和merge方法,并提供了完整的代码示例。 ... [详细]
  • 中科院学位论文排版指南
    随着毕业季的到来,许多即将毕业的学生开始撰写学位论文。本文介绍了使用LaTeX排版学位论文的方法,特别是针对中国科学院大学研究生学位论文撰写规范指导意见的最新要求。LaTeX以其精确的控制和美观的排版效果成为许多学者的首选。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本题探讨了在大数据结构背景下,如何通过整体二分和CDQ分治等高级算法优化处理复杂的时间序列问题。题目设定包括节点数量、查询次数和权重限制,并详细分析了解决方案中的关键步骤。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • Python第三方库安装的多种途径及注意事项
    本文详细介绍了Python第三方库的几种常见安装方法,包括使用pip命令、集成开发环境(如Anaconda)以及手动文件安装,并提供了每种方法的具体操作步骤和适用场景。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
author-avatar
今生绝恋2702934494
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有