题目连接:Osu!
解题思路:这题看了下是statistic,基本上WA偏多,1000个点,以为有什么坑,暴力试一试结果就AC了。不过时间相同的不能算。不能除0。
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstdlib>
#define MAX 1010
using namespace std;
struct point{
int x, y, time;
point(){}
point(int xx, int yy, int tt){
x = xx, y = yy, time = tt;
}
};
int n;
point p[MAX];
double dis(point a, point b){
return sqrt(pow(a.x - b.x * 1.0, 2) + pow(a.y - b.y * 1.0, 2)) / (1.0 * abs(a.time - b.time));
}
int main(){
int i, j, k;
int a, b, c;
int t;
cin >> t;
while(t--){
cin >> n;
for(i = 0; i < n; i++){
cin >> a >> b >> c;
p[i] = point(b, c, a);
}
double ans = -1;
int ii, jj;
for(i = 0; i < n; i++){
for(j = i; j < n; j++){
if(p[i].time == p[j].time) continue;
double tem = dis(p[i], p[j]);
if(tem > ans){
ans = dis(p[i], p[j]);
ii = i, jj = j;
}
}
}
printf("%.10lf\n", ans);
}
return 0;
}