简单贪心

图片说明

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]);
        }
    }

}

思路:这道题是一道很明显的贪心题目,要使得代价最大,肯定是每次切割将最小的切掉,这样后续更大的数,在计算代价的时候会被多次累加,从而达到最大的目的。所以做法就是: 先排序,然后每次将最小的元素分割掉,这样总代价就相当于

图片说明

为什么要减去a[n],最后只剩两个元素时只要分割一次,所以最大的一个元素只会被计算到n-1次。

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
投递大华股份等公司10个岗位
点赞 评论 收藏
分享
一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务