HDU 3007
基本小圆覆盖模板题
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- using namespace std;
- int X,Y; int n;
- const double eps=0.00000001;
- struct point{
- double x,y;
- }p[550];
- struct Circle{
- point cent;
- double r;
- }cir;
- double dist(point x, point y){
- double a=x.x-y.x;
- double b=x.y-y.y;
- return sqrt(a*a+b*b);
- }
- double triangleArea(point t1, point t2, point t3){
- point p1,p2;
- p1.x=t2.x-t1.x; p1.y=t2.y-t1.y;
- p2.x=t3.x-t1.x; p2.y=t3.y-t1.y;
- return fabs(p1.x*p2.y-p1.y*p2.x)/2;
- }
- Circle triangleCircle(point t1, point t2, point t3){
- Circle tmp;
- double a=dist(t1,t2);
- double b=dist(t2,t3);
- double c=dist(t3,t1);
- tmp.r=a*b*c/triangleArea(t1,t2,t3)/4;
- double xa,ya,xb,yb,xc,yc;
- double c1,c2;
- xa=t1.x; ya= t1.y;
- xb=t2.x; yb= t2.y;
- xc=t3.x; yc= t3.y;
- c1=(xa*xa+ya*ya-xb*xb-yb*yb)/2;
- c2=(xa*xa+ya*ya-xc*xc-yc*yc)/2;
- tmp.cent.x=(c1*(ya-yc)-c2*(ya-yb))/((xa-xb)*(ya-yc)-(xa-xc)*(ya-yb));
- tmp.cent.y=(c1*(xa-xc)-c2*(xa-xb))/((ya-yb)*(xa-xc)-(ya-yc)*(xa-xb));
- return tmp;
- }
- void slove(){
- random_shuffle(p,p+n);
- cir.cent=p[0];
- cir.r=0;
- for(int i=1;i<n;i++){
- if(dist(cir.cent,p[i])>cir.r){
- cir.cent=p[i]; cir.r=0;
- for(int j=0;j<i;j++){
- if(dist(cir.cent,p[j])>cir.r){
- cir.cent.x=(p[i].x+p[j].x)/2;
- cir.cent.y=(p[i].y+p[j].y)/2;
- cir.r=dist(p[i],p[j])/2;
- for(int k=0;k<j;k++){
- if(dist(cir.cent,p[k])>cir.r){
- cir=triangleCircle(p[i],p[j],p[k]);
- }
- }
- }
- }
- }
- }
- }
- int main (){
- while(scanf("%d",&n),n){
- for(int i=0;i<n;i++){
- scanf("%lf%lf",&p[i].x,&p[i].y);
- }
- slove();
- printf("%0.2lf %0.2lf ",cir.cent.x,cir.cent.y);
- printf("%0.2lf\n",cir.r);
- }
- return 0;
- }
HDU 3007的更多相关文章
- hdu 3007 Buried memory 最远点对
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3007 Each person had do something foolish along with ...
- HDU 3007 Buried memory & ZOJ 1450 Minimal Circle
题意:给出n个点,求最小包围圆. 解法:这两天一直在学这个神奇的随机增量算法……看了这个http://soft.cs.tsinghua.edu.cn/blog/?q=node/1066之后自己写了好久 ...
- 最小圆覆盖 hdu 3007
今天学习了一下最小圆覆盖, 看了一下午都没看懂, 晚上慢慢的摸索这代码,接合着别人的讲解, 画着图跟着代码一步一步的走着,竟然有些理解了. 最小圆覆盖: 给定n个点, 求出半径最小的圆可以把这些点全部 ...
- HDU 3007 模拟退火算法
Buried memory Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- HDU 3007 Buried memory(计算几何の最小圆覆盖,模版题)
Problem Description Each person had do something foolish along with his or her growth.But,when he or ...
- hdu 3007【最小圆覆盖-随机增量法模板】
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> usin ...
- HDU 3007 最小圆覆盖 计算几何
思路: 随机增量法 (好吧这数据范围并不用) //By SiriusRen #include <cmath> #include <cstdio> #include <al ...
- HDU - 3007 Buried memory
传送门 最小圆覆盖模板. //Achen #include<algorithm> #include<iostream> #include<cstring> #inc ...
- ACM计算几何题目推荐
//第一期 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面 ...
随机推荐
- NOIP2013--火柴排队(树状数组)
转载: 树状数组,具体的说是 离散化+树状数组.这也是学习树状数组的第一题. 算法的大体流程就是: 1.先对输入的数组离散化,使得各个元素比较接近,而不是离散的, 2.接着,运用树状数组的标准操作来累 ...
- bzoj1116 [POI2008]CLO——并查集找环
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1116 分析性质,只要有环,那么给环定一下向就满足了条件: 环上点的其他边可以指向外面,所以两 ...
- Spring配置事务中的 transactionAttributes 各属性含义及XML配置
转自:https://blog.csdn.net/z69183787/article/details/17161393 transactionAttributes 属性: PROPAGATION 事务 ...
- go之for循环
一.基于计数器的迭代 格式 for 初始化语句; 条件语句; 修饰语句{} 实例 package main import "fmt" func main(){ for i:=0;i ...
- Nightmare --- 炸弹时间复位
题目大意: 该题为走迷宫,其条件有如下6个: 1, 迷宫用二维数组来表示: 2, 人走动时不能越界,不能在墙上走: 3, 当走到出口时,若剩余时间恰好为0,则失败: 4, 找到炸弹复位装置,若剩余时间 ...
- mvp 不错的链接
http://www.imooc.com/wenda/detail/216700 http://www.cnblogs.com/mybkn/archive/2012/04/12/2443676.htm ...
- Blender插件初始化范例
目标 [x] 总结Blender插件初始化范例 总结 插件模板 Blender内部插件实现方式模板功能总结如下: 定义了子模块重加载方式 定义了批量加载子模块的方式 插件注册函数 插件注销函数 模块总 ...
- HBase、Hive、MapReduce、Hadoop、Spark 开发环境搭建后的一些步骤(export导出jar包方式 或 Ant 方式)
步骤一 若是,不会HBase开发环境搭建的博文们,见我下面的这篇博客. HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 步骤一里的,需要补充的.如下: 在项目名,右键, ...
- bitmap实现背景透明
近日在项目中,一直被一个问题搞得头大的很,美工要把按钮图片弄成不规则的,但是在winform里实现又不仅仅是使用简单的png图片而已.在网上找到一些方法,稍微改了一点加工成项目所需. 贴出解决方案,以 ...
- 自学Python七 爬虫实战一
此文承接上文,让我们写一个简简单单的爬虫,循序而渐进不是吗?此次进行的练习是爬取前5页什么值得买网站中的白菜价包邮信息.包括名称,价格,推荐人,时间. 我们所需要做的工作:1.确定URL并获得页面代码 ...