洛谷 P1223 排队接水 Java

贪心
该题比较水

import java.util.*;
class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] nums = new int[n+1];
        double res = 0;

        for (int i = 1 ; i <= n ; i++)
        {
            int temp = sc.nextInt();
            //为什么 乘1001 , 因为*1001之后再加上i(他是第几个数)不会影响排序时的大小
            nums[i] = temp*1001 + i;

        }
        Arrays.sort(nums);
        for (int i = 1 ; i <= n ; i++)
        {
            // 对1001取模,就是他的序列号(第几个数)
            System.out.print(nums[i]%1001+" ");
        }
        System.out.println();
        for (int i = 1 ; i <= n ; i++)
        {
            //除以 1001 之后就是Ti  
            //等待的时间:这个人花费的时间 * (后边的人数)
            res += nums[i]/1001*(n-i);
        }
        // Java中也可以使用printf来格式化输出
        System.out.printf("%.2f",res/n);

    }
}

猜你喜欢

转载自blog.csdn.net/qq_45260619/article/details/105614164
今日推荐