t
a
g
:
tag :
tag:圆
排序
枚举
传送门 : 题意 : 给定
n
n
n个那奶牛和两个基站,询问两个基站的
r
1
r1
r1,
r
2
r2
r2覆盖半径在覆盖所有奶牛的情况下,他们的
r
1
2
+
r
2
2
r_1^2+r_2^2
r12+r22最小值是多少
思路 : 显然的,如果我们固定出 r 1 r_1 r1那么 r 2 r_2 r2 也是固定的
同时又因为数据范围 n ≤ 2000 n\le 2000 n≤2000,因此我们考虑枚举 r 1 r_1 r1,因为 r 1 r_1 r1可以等于 0 0 0
所以 r 1 ∈ { 0 , D i s i = 1 n ( 奶 牛 , 基 站 1 ) } r1\in\{0,Dis_{i=1}^n(奶牛,基站_1) \} r1∈{0,Disi=1n(奶牛,基站1)}
对于我们固定了 r 1 r1 r1,那么范围大于 r 1 r1 r1的奶牛必然需要丢给基站 2 2 2
因此基站 2 2 2的离奶牛的最大半径就是 r 2 r2 r2,因此按此思路模拟即可
优化 :
n l o g n nlogn nlogn的做法是对 r 1 r1 r1的所有距离排序,从大到小枚举
使得每次在 r 1 r1 r1外的点只有一个
code :
pii a[N];
ll cal(pii a,pii b){
return 1ll*(a.x - b.x)*(a.x - b.x) + 1ll*(a.y - b.y)*(a.y - b.y);
}
void solve(){
ll n,x1,x2,y1,y2;
cin>>n>>x1>>y1>>x2>>y2;
for(int i=1;i>a[i].x>>a[i].y;
ll ans = 1e18;
for(int i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?