本文共 960 字,大约阅读时间需要 3 分钟。
题目描述
据传,2020年是宇宙射线集中爆发的一年,这和神秘的宇宙狗脱不了干系!但是瑞神和东东忙于正面对决宇宙狗,宇宙射线的抵御工作就落到了ZJM的身上。 假设宇宙射线的发射点位于一个平面,ZJM已经通过特殊手段获取了所有宇宙射线的发射点,他们的坐标都是整数。而ZJM要构造一个保护罩,这个保护罩是一个圆形 ,*中心位于一个宇宙射线的发射点上*
。同时,因为大部分 经费都拨给了瑞神,所以ZJM要节省经费,做一个最小面积的保护罩。当ZJM决定好之后,东东来找ZJM一起对抗宇宙狗去了,所以ZJM把问题扔给了你~ 输入描述 输入第一行一个正整数N,表示宇宙射线发射点的个数 接下来N行,每行两个整数X,Y,表示宇宙射线发射点的位置 输出描述 输出包括两行 第一行输出保护罩的中心坐标x,y用空格隔开 第二行输出保护罩半径的平方 下面加粗这小段话只与输出有关,根本用不到浮点数
(所有输出保留两位小数,如有多解,输出x较小的点,如还有多解,输入y较小的点) 无行末空格 样例输入 50 00 11 00 -1-1 0
样例输出
0.00 0.00
1.00
简析
这个题也不是很难,重点是要把题读清楚,它不是最小圆覆盖问题o(╥﹏╥)o(⊙︿⊙)
Codes
#include#define ll long longusing namespace std;int n;struct dis{ ll x,y;}d[1010];ll f(ll x){ return x*x;}int main(){ cin>>n; for(int i=0;i >d[i].x>>d[i].y; ll r,ans=1e12,tx,ty; for(int i=0;i r){ ans=r; tx=d[i].x;ty=d[i].y; } else if(ans==r){ if(tx>d[i].x || (tx==d[i].x&&ty>d[i].y)){ tx=d[i].x;ty=d[i].y; } } } printf("%lld.00 %lld.00\n%lld.00",tx,ty,ans); return 0;}
转载地址:http://fcwzi.baihongyu.com/