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