假设宇宙射线的发射点位于一个平面,ZJM已经通过特殊手段获取了所有宇宙射线的发射点,他们的坐标都是整数。而ZJM要构 造一个保护罩,这个保护罩是一个圆形,中心位于一个宇宙射线的发射点上。做一个最小面积的保护罩。
给所有点按照输出大小顺序排序,计算以每个点为圆心的保护罩的半径平方,找最小的。
首先数据范围要求long long,并且所求为半径平方,注意!!!
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct node
{long long x, y;bool operator<(node& b)const{if (x < b.x)return true;else if (x == b.x && y < b.y)return true;else return false;}
};
int main()
{int n;cin >> n;node* a = new node[n];for (int i = 0; i < n; i++){cin >> a[i].x;cin >> a[i].y;}sort(a, a + n);long long r = 1e18;node tmp;for (int i = 0; i < n; i++){long long tr = 0;long long x = a[i].x, y = a[i].y;for (int j = 0; j < n; j++){long long b = (x - a[j].x) * (x - a[j].x) + (y - a[j].y) * (y - a[j].y);if (tr < b)tr = b;}if (r > tr){r = tr;tmp = a[i];}}cout << tmp.x << ".00 " << tmp.y << ".00" << endl;cout << r << ".00";
}
本文发布于:2024-02-01 09:33:23,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170675120535691.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |