简单贪心
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int n = sc.nextInt();
int [] a = new int [n];
for(int i=0;i<n;i++) {
a[i]=sc.nextInt();
}
Arrays.sort(a);
long sum=0;
int temp=1;
for(int i=0;i<n;i++) {
sum+=temp*a[i];
temp++;
}
System.out.println(sum-a[n-1]);
}
}
}
思路:这道题是一道很明显的贪心题目,要使得代价最大,肯定是每次切割将最小的切掉,这样后续更大的数,在计算代价的时候会被多次累加,从而达到最大的目的。所以做法就是: 先排序,然后每次将最小的元素分割掉,这样总代价就相当于