• HDU 3402 Ants run!


    Ants run!

    Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 875    Accepted Submission(s): 311

    Problem Description
    Professor Yang likes to play with ants when he is free. This time, Professor Yang caught several ants after finishing his lecture for freshmen. At the beginning of the game, he puts N ants around a plate and numbers them in clockwise order. The ants are so obedient that they run clockwise under the guide of Professor Yang on the boundary of the plate which is a circle. At first the distances of every two adjacent ants are the same around the boundary of the circle. When one ant catches up with its previous ant, the game is over. Knowing the speed of ants, Professor Yang wants you to help him to change the order of the ants to make the game last longer.
     
    Input
    The first line of the input is T (no more than 100), which stands for the number of test cases you need to solve. Each test case begins with N and R, representing the number of ants participating the game is N ( N <= 100000)and the radius of the circle is R(R <= 100000) cm. The next line lists N integers and the i-th number is the speed (cm/s) of the i-th ant in clockwise direction. All these N numbers are positive integer not larger than 1000.
     
    Output
    If the game can last forever, print “Inf” in a single line, otherwise please output the longest time in seconds each game can last, which should be printed accurately rounded to three decimals.
     
    Sample Input
    2
    3 1
    1 1 1
    2 1
    1 2
     
    Sample Output
    Inf
    3.142
     
    Author
    lxhgww
     
    Source
     
    Recommend
    lcy
     
    思路:贪心,从小到大排序然后找时间最小的就是答案
    因为只有从小到大排序时间是才是最长的
     
    代码:
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    double PI = 3.1415926 * 2;
    int t,n;
    double r;
    double dis_tance;
    double minn;
    int map[100010];
    int main()
    {
        scanf("%d",&t);
        while(t --)
        {
            minn = 100000.00;
            scanf("%d%lf",&n,&r);
            memset(map,0,sizeof(map));
            for(int i = 1;i <= n;i ++)
                  scanf("%d",&map[i]);
            if(map[1] == map[n])
                printf("inf ");
            else
            {
                sort(map + 1,map + n + 1);
                dis_tance = (PI * r) / n;
                for(int i = n;i > 1;i --)
                   if(dis_tance / (map[i] - map[i - 1]) < minn)
                      minn = dis_tance / (map[i] - map[i - 1]);
                printf("%.3lf ",minn);
            }
        }
        return 0;
    }
  • 相关阅读:
    【贪心】CodeForces-545C:Woodcutters
    【贪心】雷达问题
    【贪心】poj1328:雷达设置
    【最短路】HDU2680:Choose the best route
    2018年第四阶段组队训练赛第九场
    第四阶段组队训练赛第八场
    2018年第四阶段组队训练赛第七场
    第四阶段组队训练赛第六场( 题源:UKIEPC2017)
    Coins I
    2018年第四阶段组队训练赛第五场
  • 原文地址:https://www.cnblogs.com/GODLIKEING/p/3334931.html
Copyright © 2020-2023  润新知