2021年度训练联盟热身训练赛第一场 A.Weird Flecks, But OK (最小覆盖圆)
题目链接: A.Weird Flecks, But OK
题解
从XOY、YOZ、XOZ三个面,寻找最小圆覆盖,只要满足存在一个面的点被圆覆盖即可,答案就是每个面的最小圆的最小值。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define N 5010
using namespace std;
int n;
double x[N],y[N],z[N];
struct node{double x,y;}b[N];
node O;
double R;
double sqr(double x){return x*x;}
double dis(node x,node y)
{return sqrt(sqr(x.x-y.x)+sqr(x.y-y.y));
}
bool incircle(node x)
{if(dis(O,x)<=R) return true;return false;
}
node solve(double a,double b,double c,double d,double e,double f)
{double y=(f*a-c*d)/(b*d-e*a);double x=(f*b-c*e)/(a*e-b*d);return (node){x,y};
}
double f(int flag)
{int i,j,k;if(flag==0){for(i=1;i<=n;i++) b[i].x=x[i],b[i].y=y[i];}if(flag==1){for(i=1;i<=n;i++) b[i].x=x[i],b[i].y=z[i];}if(flag==2){for(i=1;i<=n;i++) b[i].x=y[i],b[i].y=z[i];}random_shuffle(b+1,b+n+1);R=0;for(i=1;i<=n;i++)if(!incircle(b[i])){O.x=b[i].x;O.y=b[i].y;R=0;for(j=1;j<i;j++)if(!incircle(b[j])){O.x=(b[i].x+b[j].x)/2;O.y=(b[i].y+b[j].y)/2;R=dis(O,b[i]);for(k=1;k<j;k++)if(!incircle(b[k])){O=solve(b[i].x-b[j].x,b[i].y-b[j].y,(sqr(b[j].x)+sqr(b[j].y)-sqr(b[i].x)-sqr(b[i].y))/2,b[i].x-b[k].x,b[i].y-b[k].y,(sqr(b[k].x)+sqr(b[k].y)-sqr(b[i].x)-sqr(b[i].y))/2 );R=dis(b[i],O);}}}return R;
}
int main()
{scanf("%d",&n);int i,j,k;for(i=1;i<=n;i++) cin >> x[i] >> y[i] >> z[i];double ans=0x3f3f3f3f;ans=min(ans,f(0));ans=min(ans,f(1));ans=min(ans,f(2));printf("%.6lf\n",ans*2);
}
2021年度训练联盟热身训练赛第一场 A.Weird Flecks, But OK (最小覆盖圆)相关推荐
- 2021年度训练联盟热身训练赛第三场赛后补题
2021年度训练联盟热身训练赛第三场赛后补题 A Circuit Math [题目分析] [代码展示] B Diagonal Cut [题目分析] [代码展示] C Gerrymandering [题 ...
- 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FFT)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FF ...
- 2021年度训练联盟热身训练赛第五场
2021年度训练联盟热身训练赛第五场 链接:https://ac.nowcoder.com/acm/contest/13926 A Binary Seating #include<bits/st ...
- 2021年度训练联盟热身训练赛第八场
目录 2021年度训练联盟热身训练赛第八场 A-Fire on Field 题意 思路 代码 B-Gene Tree 题意 思路 代码 I-Thread Knots 题意 思路 代码 J-Triang ...
- 2021年度训练联盟热身训练赛第三场(待补)
文章目录 前言 一.Circuit Math(后缀表达式---栈&&fgets) 二.Diagonal Cut(gcd最大公因数,数论) 三.expected primary-expr ...
- 2021年度训练联盟热身训练赛第二场(ICPC North Central NA Contest 2019,南阳师范学院),签到题ABCDEFGIJ
A. Binarize It,简单枚举 链接:https://ac.nowcoder.com/acm/contest/12794/A 来源:牛客网 题目描述 Professor Boolando ca ...
- 2021年度训练联盟热身训练赛第一场 E Early Orders 思维 + 栈
传送门 题意: 给nnn个数,一个kkk,求aaa中包含1−k1-k1−k且字典序最小的子序列. 思路1: 记p[i]p[i]p[i]为iii出现的最后位置,让后维护一个栈,当这个数不在栈里时将其入栈 ...
- 2021年度训练联盟热身训练赛第一场 H题On Average They‘re Purple(BFS)
题意: 给你一些联通关系,问Bob先选择一些路径(1~n)联通,Alice在路径上染色,Bob的目的是选择一些路径使得染色变化最小,对于Alice来说,需要使得在Bob选择的(1−n1-n1−n)d的 ...
- 2021年度训练联盟热身训练赛第一场 (除G,K外所有)
传送门 A Weird Flecks, But OK An artist who wanted to create an installation where his works appeared t ...
最新文章
- LabVIEW轮廓分析与比较(基础篇—8)
- cocos2d-x 2.x创建帧序列动画
- html制作百度首页的图片不显示,html实现像百度的首页效果一样的背景图(代码)...
- 洛谷 - P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并(树上差分+线段树合并)
- Mac 运行 psql postgres 报错
- OpenGL学习笔记:颜色(RGBA颜色,颜色索引模式)
- 非模态对话框的创建于销毁
- ros topic 命令
- DM365的UBL源码分析(二)
- stm32 整数加法循环时间_剑指 Offer 65. 不用加减乘除做加法 leetcode 剑指offer系列...
- python 断言大全
- 演讲实录 :某大型股份制商业银行的容器化探索之路
- E18-D80NK红外避障传感器使用说明
- python shell 运行py文件,python怎么运行py文件
- HTTP2.0多路复用
- mongodb用哪些端口号_mongodb端口号(mongodb默认端口号)
- Pytorch → ONNX → TensorRT
- spring:IOC控制反转中“dI“
- 战略制定4大关键要点
- 2012智能手机发展格局解析
热门文章
- 5G进度卡关 联发科应如何解困?
- MSF Risk Management Discipline
- 趣味题系列(6):帽子戏法
- Scaled-YOLOv4: Scaling Cross Stage Partial Network
- openCV读入图片,openGL实现纹理贴图
- 2020 China Collegiate Programming Contest Weihai Site H.Message Bomb
- 一个老百姓眼中的次贷危机
- java写zip后无法读取
- 手机浏览器能接收彩信,还hold住吗?
- PYPL 4 月排行:Python 最流行,Java 老矣,尚能饭否?