P4995 跳跳!( 普及/提高-)————贪心

题解:本题主要考查贪心。如果要值最大,就要高度差最大,所以先排序在剩余的石头中最大和最小来回跳就可以啦。
代码如下:

#include<iostream>
#include<algorithm>
using namespace std;
long long int a[310],num=0;
int n,i,p,q;
int main()
{
    cin>>n;	
    for(i=1;i<=n;i++)cin>>a[i];
    sort(a+1,a+1+n);
    p=0;q=n;
    while(p<q)
    {
        num=(a[q]-a[p])*(a[q]-a[p])+num;
        p++;
        num=(a[p]-a[q])*(a[p]-a[q])+num;
        q--;
    }
    cout<<num;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/wly1127/article/details/83932080
今日推荐