HDU 5078 Osu!

来源:互联网 发布:手机上的c语言编辑器 编辑:程序博客网 时间:2024/06/09 17:31

题目连接:Osu!

解题思路:这题看了下是statistic,基本上WA偏多,1000个点,以为有什么坑,暴力试一试结果就AC了。不过时间相同的不能算。不能除0。

#include<cstdio>#include<iostream>#include<cmath>#include<cstdlib>#define MAX 1010using 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;}


0 0
原创粉丝点击