欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

P4995 跳跳!

程序员文章站 2024-01-08 11:52:34
...

P4995 跳跳!

咋一看还以为是dp。。。仔细看原来是贪心,不停的选择高度差最大的跳就好了,直到跳完所有的石头为止~下面是AC代码

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long int ll;
    int main()
    {
        int n;
        cin>>n;
        int a[n+1];
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
        }
        sort(a+1,a+n+1);
        a[0]=0;
        ll sum=0;
        if(n%2==0)
        {
            for(int i=0;i<=n/2-1;i++)
            {
                sum+=pow(a[n-i]-a[i],2);
                sum+=pow(a[n-i]-a[i+1],2);
            }
        }
        else
        {
            for(int i=0;i<=n/2;i++)
            {
                sum+=pow(a[n-i]-a[i],2);
                if(i<=n/2-1)
                {
                    sum+=pow(a[n-i]-a[i+1],2);
                }
            }
        }
        cout<<sum<<endl;
        return 0;
    }
相关标签: 贪心