【bzoj2697】 特技飞行 贪心

傻逼题,去年航神的noip模拟题,每一个动作放多次等价于放两次,所以每次贪心的把最大的动作发在最开始和最末尾就好了。


#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#define maxn 1010

using namespace std;

long long ans;
int n,k;
int c[maxn];

bool cmp(int a,int b)
{
	return a>b;
}

int main()
{
	scanf("%d%d",&n,&k);
	for (int i=1;i<=k;i++) scanf("%d",&c[i]);
	sort(c+1,c+k+1,cmp);
	for (int i=1;i<=min(k,n/2);i++) ans+=(long long)(n-1-2*(i-1))*c[i];
	printf("%lld\n",ans);
	return 0;
}


你可能感兴趣的:(【bzoj2697】 特技飞行 贪心)