Regional Contest F Nearby Bicycles 复现 题解

本文详细解析了2017 ACM-ICPC亚洲香港区域赛中的一道名为“Nearby Bicycles”的题目。通过直接模拟的方法,文章阐述了如何计算每个人在指定范围内可以找到的自行车数量,无需进行复杂的数学运算,仅需比较距离的平方值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The 2017 ACM-ICPC Asia Hong Kong Regional Contest F Nearby Bicycles 复现 题解

题目

  • 这次是在社团的oj上做的复现题目。
    原题
    原题链接

题意

  • 题目给m辆车的坐标,n个人的坐标,还有这n个人对应要求的范围,输出每个样例中每个人对应范围内车的数量。样例以0 0结束,即m和n都为0时结束。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    while (1){
        int m,n,i=0;
        cin>>m>>n;
        if (m==0&&n==0)
            break;
        vector<pair<long long, long long>> a(m),b(n);
        vector<long long> s(n);
        for (int i=0;i<m;i++){
            char temp[3];
            cin>>temp[0]>>a[i].first>>temp[1]>>a[i].second>>temp[2];
        }
        for (i=0;i<n;i++){
            char temp[3];
            cin>>temp[0]>>b[i].first>>temp[1]>>b[i].second>>temp[2];
        }
        for (i=0;i<n;i++){
            cin>>s[i];
        }
        long long count=0;
        for (i=0;i<n;i++){
            count=0;
            for (int j=0;j<m;j++){
                if (pow(a[j].first-b[i].first, 2)+pow(a[j].second-b[i].second, 2)<=pow(s[i], 2)){
                    count++;
                }
            }
            if (i<n-1){
                printf("%lld ",count);
            }
        }
        printf("%lld\n",count);
    }
    return 0;
}

思路

  • 直接模拟,不使用题目给的开方,直接将给定的范围平方拿去比较即可。

总结

  • 本题难度不高,注意输入输出要标准,这次被换行坑了一把。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值