A 平板游戏-2019浙江理工大学新生赛

问题 A: 平板游戏

时间限制: 1 Sec  内存限制: 128 MB

题目描述

 小黑和小白喜欢玩平板游戏,游戏一开始屏幕上会出现很多个图形,玩家在每一轮可以合并两个图形,当只有一个图形的时候游戏结束,每个图形都有一个大小,合并完成后的图形的大小为x+y,x和y分别为合并之前的两个图形,与此同时,玩家会获得x*y的分数。
小黑和小白新开了一盘游戏,屏幕上出现了n个图形,每个图形的大小已知,请算出小黑和小白最大能获得的分数

输入

 第一行输入一个整数n (2  <= n <= 100 )
第二行输入n个整数范围在1到100之间

输出

 输出一个整数,表示能获得的最高分

样例输入

【样例输入1】
3
1 2 3
【样例输入2】
2
3 4
【样例输入3】
3
2 2 2

样例输出

【样例输出1】
11
【样例输出2】
12
【样例输出3】
12

题解:一道水题。保险的做法是先sort排序后再用贪心合并。其实只要观察一下样例,就会发现

           这题是一道恒等式。(不会证明)

贴上代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,d[110],i;
    while(cin>>n)
    {
        for(i=1; i<=n; i++)cin>>d[i];
        sort(d+1,d+1+n);
        int sum=d[n];
        long long ans=0;
        for(i=n-1; i>=1; i--)
        {
            ans+=sum*d[i];
            sum+=d[i];
        }
        cout<<ans<<endl;
    }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值