圆形牛棚


题目

链接:1843. 圆形牛棚 - AcWing题库

作为当代建筑的爱好者,农夫约翰建造了一个完美圆环形状的新牛棚。

牛棚内部有 n 个房间,围成一个环形,按顺时针编号为 1∼n

每个房间都既有通向相邻两个房间的门,也有通向牛棚外部的门。

约翰想让第 i 个房间内恰好有 ri 头牛。

为了让奶牛们有序的进入牛棚,他计划打开一个外门,让牛从该门进入。

然后,每头牛顺时针穿过房间,直到到达合适的房间为止。

约翰希望通过合理选择打开的门,使得所有奶牛的行走距离之和尽可能小(这里只考虑每头牛进入牛棚以后的行走距离)。

请确定他的奶牛需要行走的最小总距离。

代码

import java.util.*;


public class Main {
    static int N = 100010;
    static int n, ans = Integer.MAX_VALUE;
    static int[] a = new int[1010];
    public static void main(String[] args) {
        Scanner inScanner = new Scanner(System.in);
        n = inScanner.nextInt();
        for(int i = 0; i < n; i ++)
            a[i] = inScanner.nextInt();
        inScanner.close();
        for(int i = 0; i < n; i ++)
        {
            int sum = 0;
            for(int j = 1; j < n; j ++)
                sum += j * a[(i + j) % n];
            ans = Math.min(sum, ans);
        }
        System.out.println(ans);
    }
}

文章作者: 姜小白
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 姜小白 !
评论
  目录