资源简介
:输入N个点的坐标,求一个能覆盖全部点 的最小圆
代码片段和文件信息
/*输入n个点的坐标,n<500 求半径最小的圆能覆盖这n个点,在圆周上也算覆盖。
输出圆心坐标和半径的100倍的整数部分(不要四拾伍入)
输入格式
第一行一个整数n
接着n行,每行一个点的坐标,两个整数,中间一个空格
重复输入直至n=0
输出格式
每行一个结果,最小圆的X坐标的100倍整数部分、Y坐标的100倍整数部分、半径的100倍整数部分。
每行都有回车,n=0的除外
例子:
输入:
3
0 0
1 0
1 1
4
5 3
3 3
5 0
0 2
5
0 1
1 0
2 1
3 2
4 1
0
输出:
50 50 70
270 150 274
200 100 200*/
#include
#include
#include
#define eps 1e-8
const int N=1000;
struct point {double xy;}cenp[N]po;
double r;
int nixend[N]yend[N]rend[N]count=0;
double distance(point p1point p2)
{
return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
double dist2(point p1point p2)
{
return (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);
}
void calc(double a1double b1double c1double a2double b2double c2)
{
cen.y=(c1*a2-c2*a1)/(b1*a2-b2*a1);
cen.x=(c1*b2-c2*b1)/(a1*b2-b1*a2);
}
void
- 上一篇:FastDPM完整代码
- 下一篇:ad多路采集(ADC.C)
相关资源
- DSS中的RTSPclientLib程序
- c 常用的数据结构 (Errata for Ford/Top
- rip协议编程及代码实现
- Windows Sockets 编程及UR机器人通信数据
- 茶壶的光照观察组(c++代码)
- C++实战源码-小蛇长得快
- C++实战源码-文字水平滚动
- C++实战源码-替换指定的字符串
- C++实战源码-小球称重
- C++实战源码-新同学的年龄
- C++实战源码-向数组中赋值
- C++实战源码-用#打印三角形
- C++实战源码-统计学生成绩分布
- C++实战源码-向数组中插入元素
- C++实战源码-用指向函数的指针比较大
- C++实战源码-用宏定义实现值互换
- C++实战源码-CD抓取
- C++实战源码-指定符号分割字符串
- C++实战源码-抓不住的兔子
- C++实战源码-用new动态创建结构体
- C++实战源码-将AVI动画分解成BMP位图
- C++实战源码-修改可执行文件中的资源
- C++实战源码-指向结构体变量的指针
- C++实战源码-将二维数组行列对换
- C++实战源码-应用random_shuffle算法将元
- C++实战源码-应用adjacent_find算法搜索相
- C++实战源码-数组中整数的判断
- C++实战源码-获取数组中元素的个数
- C++实战源码-将二维数组转换为一维数
- C++实战源码-迭代器的用法
评论
共有 条评论