zoukankan      html  css  js  c++  java
  • Fence Repair

    农夫约翰为了修理栅栏,要将一块很长的木板切割成N块。 准备切成的木板的长度为L1、 L2 、 … 、LN 切,未切割前木板的长度恰好为切割后木板长度的总和。 每次切断木板时, 需要的开销为这块木板的长度。 例如长度为 21 的木板要切成长度为 5 、 8 、 8 的三块木板。 长21 的木板切成长为 13 和 8 的板时, 开销为 21 。 再将长度为 13 的板切成长度为 5 和 8 的板时, 开销是 13。 于是合计开销是 34。 请求出按照目标要求将木板切割完最小的开销是多少。

    输入

    N = 3, L = (8, 5, 8)

    输出

    34

    java实现

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner scn = new Scanner(System.in);
    		int n = scn.nextInt();
    		int arr[] = new int[n];
    		long sum = 0;
    		long sum2 = 0;
    		for(int i=0;i<n;i++) {
    			arr[i]=scn.nextInt();
    			sum+=arr[i];
    		}
    		sum2+=sum;
    		Arrays.sort(arr);
    		for(int i=2;i<n;i++) {
    			sum-=arr[n-1];
    			sum2=sum2+sum;
    			arr[n-1]=0;
    			Arrays.sort(arr);
    		}
    		System.out.println(sum2);
    	}
    
    }
    
  • 相关阅读:
    mysql5.7 ERROR 1045 (28000): Access denied for user解决方法
    C++ json解决方案
    Gitblit无法查看单个文件解决方案
    git 拉取指定的远程分支(三种方式)
    全栈12
    git commit之后,想撤销commit
    video
    iframe
    git恢复之前版本的两种方法reset、revert
    Eclipse
  • 原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232562.html
Copyright © 2011-2022 走看看