Gym - 101981D Country Meow(模拟退火)题解
题意:
给\(n\)个三维点,问最小覆盖球的半径。
思路:
模拟退火。
代码:
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<bitset>
#include<string>
#include<cstdio>
#include<vector>
#include<cstring>
#include <iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1000 + 10;
const ll INF = 1e18;
const ll MOD = 1e9 + 7;
const double t0 = 0.995;
const double eps = 1e-14;
double ansx, ansy, ansz, ans;
struct Point{
double x, y, z;
}p[maxn];
int n;
double solve(double x, double y, double z){
double ret = 0;
for(int i = 1; i <= n; i++){
ret = max(sqrt((p[i].x - x) * (p[i].x - x) + (p[i].y - y) * (p[i].y - y) + (p[i].z - z) * (p[i].z - z)), ret);
}
return ret;
}
void sa(){
double t = 2000;
double X = ansx, Y = ansy, Z = ansz;
while(t > eps){
double x = X + (rand() * 2 - RAND_MAX) * t;
double y = Y + (rand() * 2 - RAND_MAX) * t;
double z = Z + (rand() * 2 - RAND_MAX) * t;
double now = solve(x, y, z);
double del = now - ans;
if(del < 0){
X = x, Y = y, Z = z;
ansx = x, ansy = y, ansz = z;
ans = now;
}
else if(exp(-del / t) * RAND_MAX > rand()){
X = x, Y = y, Z = z;
}
t *= t0;
}
}
char s[maxn];
int main(){
srand(131313131);
srand(rand());
scanf("%d", &n);
double x = 0, y = 0, z = 0;
for(int i = 1; i <= n; i++){
scanf("%lf%lf%lf", &p[i].x, &p[i].y, &p[i].z);
x += p[i].x, y += p[i].y, z += p[i].z;
}
ansx = x / n, ansy = y / n, ansz = z / n; //平均数
ans = 1e18;
for(int i = 1; i <= 10; i++) sa();
printf("%.10f\n", ans);
return 0;
}
Gym - 101981D Country Meow(模拟退火)题解的更多相关文章
- Gym - 101981D Country Meow(模拟退火)
题意 三维空间有\(n\)个点,找到另外一个点,离所有点的最大距离最小.求这个距离. 题解 \(1\).最小球覆盖,要找的点为球心. \(2\).模拟退火. 还是补一下模拟退火的介绍吧. 模拟退火有一 ...
- D.Country Meow 最小球覆盖 三分套三分套三分 && 模拟退火
// 2019.10.3 // 练习题:2018 ICPC 南京现场赛 D Country Meow 题目大意 给定空间内 N 个点,求某个点到 N 个点的距离最大值的最小值. 思路 非常裸的最小 ...
- Gym101981D - 2018ACM-ICPC南京现场赛D题 Country Meow
2018ACM-ICPC南京现场赛D题-Country Meow Problem D. Country Meow Input file: standard input Output file: sta ...
- Country Meow
Country Meow 和这基本一样 https://www.cnblogs.com/Fighting-sh/p/9809518.html #include<iostream> #inc ...
- Codeforces GYM 100876 J - Buying roads 题解
Codeforces GYM 100876 J - Buying roads 题解 才不是因为有了图床来测试一下呢,哼( 题意 给你\(N\)个点,\(M\)条带权边的无向图,选出\(K\)条边,使得 ...
- Gym - 101981D The 2018 ICPC Asia Nanjing Regional Contest D.Country Meow 最小球覆盖
题面 题意:给你100个三维空间里的点,让你求一个点,使得他到所有点距离最大的值最小,也就是让你找一个最小的球覆盖掉这n个点 题解:红书模板题,这题也因为数据小,精度也不高,所以也可以用随机算法,模拟 ...
- Problem D. Country Meow 题解(三分套三分套三分)
题目链接 题目大意 给你n(n<=100)个点,要你找一个点使得和所有点距离的最大值最小值ans 题目思路 一直在想二分答案,但是不会check 这个时候就要换一下思想 三分套三分套三分坐标即可 ...
- [gym101981D][2018ICPC南京D题]Country Meow
题目链接 题目大意是求三维空间可以包含$n$个点的最小圆半径. 如果有做过洛谷P1337就会发现这到题很模拟退火,所以就瞎搞一发. $PS:$注意本题时限$3$秒. #include<bits/ ...
- 2018ICPC南京D. Country Meow
题目: 题意:三维里有n个点,找一个最小的球将所有点覆盖. 题解:退火法模拟的一道板子题. 1 #include <stdio.h> 2 #include <iostream> ...
随机推荐
- 机器学习7-模型保存&无监督学习
模型保存和加载 sklearn模型的保存和加载API from sklearn.externals import joblib 保存:joblib.dump(rf, 'test.pkl') 加载:es ...
- 【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
欢迎使用 Blazor!Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 UI. 共享使用 .NET 编写的 ...
- IP2188中文资料书
IP2188 是一款集成 12 种.用于 USB 输出端口的快充协议 IC,支持 USB 端口充电协议.支持 11种快充协议,包括 USB TypeC PD2.0/PD3.0/PPS DFP,HVDC ...
- HTML基础复习1
网页:HTML(超文本标记语言) 网页分为静态网页和动态网页,区别:动态网页中可以加入脚本代码,还可以动态的引入数据库中的信息. HTML的结构 <html> <head>头信 ...
- CentOS7 通过snat进行上网
需求: 有两台服务器,一台绑定了弹性公网IP,另外一台没有,需要内网服务器通过有弹性ip的机器代理进行上网. 环境: centos7 操作系统 服务器A: 192.168.0.18 (可以上网,有弹性 ...
- GRPC Health Checking Protocol Unavailable 14
https://github.com/grpc/grpc/blob/master/doc/health-checking.md GRPC Health Checking Protocol Health ...
- java中List元素移除元素的那些坑
https://blog.csdn.net/javageektech/article/details/96668890 List 的迭代器类 采用倒序移除 jdk1.8的写法 public sta ...
- Core3.1 微信v3 JSAPI支付 退款
1.前言 上一篇写了<Core3.1 微信v3 JSAPI支付>,这个属于v3的接口规则,现在研究了下退款的接口我写的时候它属于v2接口规则文档.但凡微信支付文档里面写清楚点我也不会在这里 ...
- VS CODE远程办公篇一
作者:良知犹存 转载授权以及围观:欢迎添加微信:becom_me 总述 因为疫情的来临,让远程办公变得原来越火.这次我也是盯上了这个功能,实现在家里远程配置电脑. 嵌入式Linux开发的程序员 ...
- springmvc url-pattern配置/*报错
问题:springmvc 中dispatcherServlet配置url-pattern "/*"时提示找不到controllercontroller RequestMappin ...