// 2019.10.3 // 练习题:2018 ICPC 南京现场赛 D Country Meow 题目大意 给定空间内 N 个点,求某个点到 N 个点的距离最大值的最小值.   思路 非常裸的最小球覆盖问题啊,即找到半径最小的球包含全部的点. 在最小圆覆盖问题上,可以使用随机增量法,这里没有四点确定球心的公式,所以板子失效了. 最小圆覆盖可以用三分套三分,这里空间有三维,假装证明得到在任意一维上都满足凸函数特性,那么再套一层维度三分就OK了.   AC代码 三分套三分套三分写法,复杂度O(n…
题面 题意:给你100个三维空间里的点,让你求一个点,使得他到所有点距离最大的值最小,也就是让你找一个最小的球覆盖掉这n个点 题解:红书模板题,这题也因为数据小,精度也不高,所以也可以用随机算法,模拟退火之类的 #include<bits/stdc++.h> using namespace std; int npoint,nouter; struct Tpoint { double x,y,z; }; Tpoint pt[],outer[],res; #define eps 1e-9 doub…
题目 给出 $N(1 \leq N \leq 100)$ 个点的坐标 $x_i,y_i,z_i$($-100000 \leq x_i,y_i,z_i \leq 100000$),求包围全部点的最小的球. 2018南京区域赛D题 分析 方法一:模拟退火 模拟退火是 解决最小球覆盖的经典方法,效果也非常好. 随机得到球的中心,如果更小的半径或设定的概率,则转移.(详细解释见链接) //这个代码严格说不是模拟退火 有一个事实:最小球的球心,它不然是一个确定的点,就是距它最远的4个点且等距 于是,我们任…
2018ACM-ICPC南京现场赛D题-Country Meow Problem D. Country Meow Input file: standard input Output file: standard output In the 24th century, there is a country somewhere in the universe, namely Country Meow. Due to advanced technology, people can easily tra…
题目: 题意:三维里有n个点,找一个最小的球将所有点覆盖. 题解:退火法模拟的一道板子题. 1 #include <stdio.h> 2 #include <iostream> 3 #include <math.h> 4 using namespace std; 5 const int MAXN=105; 6 const double EPS=1e-8; 7 struct Point{ 8 double x,y,z; 9 Point(double _x=0,double…
Super Star http://poj.org/problem?id=2069 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6486   Accepted: 1603   Special Judge Description During a voyage of the starship Hakodate-maru (see Problem 1406), researchers found strange synch…
Country Meow 和这基本一样 https://www.cnblogs.com/Fighting-sh/p/9809518.html #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<string> #include<algorithm> #include<queue> #include<vector&…
最小球覆盖:用半径最小的球去覆盖所有点. 纯粹的退火算法,是搞不定的,精度不够,不然就会TLE,根本跑不出答案来. 任取一点为球心,然后一点点靠近最远点.其实这才是最主要的. 因为:4个点确定一个球,也就是说,这个球,会慢慢稳定,每次用一个点到最远的点的距离去靠近,怎么靠近,玄学距离 ​ . 再在这个基础上乘以 t ,模拟退火温度.这样靠近速度增加.并且不用判断是否较以前是否更优才转移,因为他是必须转移过去.至少你不可能是最长边的端点的,而且他会随着温度逐渐稳定. #include <stdio…
题意 三维空间有\(n\)个点,找到另外一个点,离所有点的最大距离最小.求这个距离. 题解 \(1\).最小球覆盖,要找的点为球心. \(2\).模拟退火. 还是补一下模拟退火的介绍吧. 模拟退火有一个初始温度,温度越高,接受较差的解的可能性就越大.每次走完后,都会降低温度,使得接受较差解的可能性变小.在走的过程中,更新最优解的值. 对这个题目来说,从空间中某一个点出发,如果每次都找离当前点最远的点,往那个点的方向走,大概率可以使结果变得更优. 随便设了个温度下降速率为\(0.97\),一遍就A…
对这种问题不熟悉的读者 可以先去看一看最小圆覆盖的问题 ZOJ1450 现在我们来看最小球覆盖问题POJ2069 题目很裸,给30个点 求能覆盖所有点的最小球的半径. 先给出以下几个事实: 1.对于一个点,球心就是这个点且半径无穷小. 2.对于两个点,球心是两个点线段的中点,半径就是线段长度的一半. 3.对于三个点,三个点构成的平面必为球的大圆,所以球心是三角形的外心,半径就是球心到某个点的距离. 4.对于四个点,若四个点共面则转化到3,只需考虑某三个点的情况,若四点不共面,四面体可以唯一确定一…