AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 校园
  • 应用
  • 文章
    • 题解
    • 分享
    • 问答
  • 吐槽
  • 登录/注册

AcWing 4429. 无线网络    原题链接    中等

作者: 作者的头像   baizhiren ,  2022-06-24 11:45:29 ,  所有人可见 ,  阅读 10


1


暴力枚举 35ms

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int n;

int r1x, r1y, r2x, r2y;
const int N = 2010;
double d1[N], d2[N];
double d(double x1,  double y1, double x2, double y2){
    return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
double ans = 1e18;
void dfs(int i, double r1, double r2){
    if(r1 * r1 + r2 * r2 >= ans) return;
    if(i > n){
        ans = r1 * r1 + r2 * r2;
    }
    if(d1[i] <= r1 || d2[i] <= r2) dfs(i + 1, r1, r2);
    else{
        dfs(i + 1, d1[i], r2);
        dfs(i + 1, r1, d2[i]);
    } 
}
int main(){
    cin >> n;
    cin >> r1x >> r1y >> r2x >> r2y;
    for(int i = 1; i <= n; i++)
    {
       int x, y;
       cin >> x >> y;
       d1[i] = d(r1x, r1y, x, y);
       d2[i] = d(r2x, r2y, x, y);
    }
   dfs(1, 0, 0);
   cout << (long long)(ans + 0.5);
    return 0;
}

0 评论

你确定删除吗?

© 2018-2022 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息