Problem D. Country Meow 题解(三分套三分套三分)
题目链接
题目大意
给你n(n<=100)个点,要你找一个点使得和所有点距离的最大值最小值ans
题目思路
一直在想二分答案,但是不会check
这个时候就要换一下思想
三分套三分套三分坐标即可
复杂度\(O(n(log_n)^3)\)
代码
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#define fi first
#define se second
#define debug printf(" I am here\n");
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=1e2+5,inf=0x3f3f3f3f,mod=1e9+7;
const double eps=1e-5;
int n;
double x[maxn],y[maxn],z[maxn];
double check3(double a,double b,double c){
double ma=-1;
for(int i=1;i<=n;i++){
ma=max(ma,sqrt((a-x[i])*(a-x[i])+(b-y[i])*(b-y[i])+(c-z[i])*(c-z[i])));
}
return ma;
}
double check2(double x,double y){
double zl=-1e5,zr=1e5;
while(zl+eps<=zr){
double zmid1=(zr-zl)/3+zl,zmid2=2*(zr-zl)/3+zl;
if(check3(x,y,zmid1)<check3(x,y,zmid2)){
zr=zmid2;
}else{
zl=zmid1;
}
}
return check3(x,y,zl);
}
double check1(double x){
double yl=-1e5,yr=1e5;
while(yl+eps<=yr){
double ymid1=(yr-yl)/3+yl,ymid2=2*(yr-yl)/3+yl;
if(check2(x,ymid1)<check2(x,ymid2)){
yr=ymid2;
}else{
yl=ymid1;
}
}
return check2(x,yl);
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%lf%lf%lf",&x[i],&y[i],&z[i]);
}
double xl=-1e5,xr=1e5;
while(xl+eps<=xr){
double xmid1=(xr-xl)/3+xl,xmid2=2*(xr-xl)/3+xl;
if(check1(xmid1)<check1(xmid2)){
xr=xmid2;
}else{
xl=xmid1;
}
}
printf("%.10f\n",check1(xl));
return 0;
}
Problem D. Country Meow 题解(三分套三分套三分)的更多相关文章
- Problem D. Country Meow 2018ICPC南京
n个点求出最小圆覆盖所有点 退火算法不会,不过这题可以用三分套三分写 x轴y轴z轴各三分 #include <cstdio> #include <cstring> #inclu ...
- Gym101981D - 2018ACM-ICPC南京现场赛D题 Country Meow
2018ACM-ICPC南京现场赛D题-Country Meow Problem D. Country Meow Input file: standard input Output file: sta ...
- D.Country Meow 最小球覆盖 三分套三分套三分 && 模拟退火
// 2019.10.3 // 练习题:2018 ICPC 南京现场赛 D Country Meow 题目大意 给定空间内 N 个点,求某个点到 N 个点的距离最大值的最小值. 思路 非常裸的最小 ...
- Country Meow
Country Meow 和这基本一样 https://www.cnblogs.com/Fighting-sh/p/9809518.html #include<iostream> #inc ...
- HDU5126---stars (CDQ套CDQ套 树状数组)
题意:Q次操作,三维空间内 每个星星对应一个坐标,查询以(x1,y1,z1) (x2,y2,z2)为左下顶点 .右上顶点的立方体内的星星的个数. 注意Q的范围为50000,显然离散化之后用三维BIT会 ...
- 2022-08-25-cdn套中套
layout: post cid: 19 title: cdn套中套 slug: 19 date: 2022/08/25 20:32:00 updated: 2022/08/26 11:20:20 s ...
- Gym - 101981D Country Meow(模拟退火)题解
题意: 给\(n\)个三维点,问最小覆盖球的半径. 思路: 模拟退火. 代码: #include<set> #include<map> #include<cmath> ...
- hihocoder 1142 三分求极值【三分算法 模板应用】
#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...
- 2018ICPC南京D. Country Meow
题目: 题意:三维里有n个点,找一个最小的球将所有点覆盖. 题解:退火法模拟的一道板子题. 1 #include <stdio.h> 2 #include <iostream> ...
随机推荐
- 卸载联软UniAccess,删除UniAccess Agent记录
UniAccess 卸载 事情起因: 公司假以安全上网为由,让公司员工安装所谓的"XX上网助手",实则是内嵌了联软的UniAccess监控系统. 有关这个软件的用途就不用多介绍了, ...
- XJOI 夏令营501-511NOIP训练18 高三楼
参观完各种饭堂,学校还有什么著名的景点呢?当然是教室了,此时此刻我 们来到了高三楼.你会发现高三楼门口会有以身份认证系统,这东西还有着一段疼人的历史.每年的九月到来,高三的童鞋大多不习惯学校的作息时间 ...
- 关于||和&&运算符及表达式的执行
++a || ++b && ++c表达式中++a,--b,++c三者执行与否的判断 在||运算符前的表达式为真,则其后的表达式不执行 eg:执行前 a=2, b=2, c=2 执行 ...
- Shell 教程01
Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...
- 7. 组合你的UI
1. UI布局关键概念 一个组合应用UI的根节点被称作Shell,一般只有一个Shell.Shell作为应用的主页,包含一个或者多个域.域是内容占位符,可以包含一个或者多个View.有很多控件可以作为 ...
- XDG0062 XAML 与XDG0008 XAML 错误的解决办法
昨天在使用wpf开发系统的时候,突然出现了错误(其实也不能称为错误,就是打开XAML文件时,在解决方案管理器中出现错误提示,XAML编辑文档出现波浪线的提示 The XAML designer dis ...
- 说一说packet poll 错误掩码的一个bug tcp udp packet poll细节有所不同 处理时需要注意
今天处理一个cpu标高的bug,原因:在poll 返回后将error事件当做POLLIN事件处理,fd 一直都在唤醒线程处理,但是rcv的时候没有数据: unsigned int datagram_p ...
- kafka消费者offset存储策略
由于 consumer 在消费过程中可能会出现断电宕机等故障,consumer 恢复后,需要从故 障前的位置的继续消费,所以 consumer 需要实时记录自己消费到了哪个 offset,以便故障恢 ...
- <连接器和加载器>——概述连接器和加载器
0.涉及术语 (1)地址绑定 将抽象的符号与更抽象的符号绑定,如 sqrt 符号与地址 0x0020010绑定. (2)符号解析 程序相互作用通过符号进行,如主程序调用库函数sqrt,连接器通过表明分 ...
- python之《matplotlib》
# _*_coding:utf-8_*_# /usr/bin/env python3# Author:book Mikiimport matplotlib.pyplot as pltimport nu ...