[国家集训队] 特技飞行

题目描述:

QAQ…

题目分析:

打了个表发现,一个动作只要确定了第一次做的时间,最后一次做的时间,中间做几次价值都没有影响,那么我们就把每个动作的价值排序,对于价值大的动作让他的时间间隔大就好了…

题目链接:

Luogu 3918

Ac 代码:

#include <cstdio>
#include <algorithm>
#include <cstring>
int val[1010],n,k;
int main()
{
    scanf("%d%d",&n,&k);
    for(int i=1;i<=k;i++) scanf("%d",&val[i]);
    std::sort(val+1,val+k+1);
    int l=1,r=n,ans=0;
    for(int i=k;i&&l<r;i--)
    {
        ans+=(r-l)*val[i];
        l++,r--;
    }
    printf("%d\n",ans);
    return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_35914587/article/details/80254846