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;
}
思路
- 直接模拟,不使用题目给的开方,直接将给定的范围平方拿去比较即可。
总结
- 本题难度不高,注意输入输出要标准,这次被换行坑了一把。