2017年PTA乙级春考 结绳 分数 25 知识点:贪心

241 阅读1分钟

PTA | 程序设计类实验辅助教学平台 (pintia.cn)

坑点:排序

思路:该题要求出最大长度,因此解不唯一,我们要求最优解。

所以我们就要知道为什么同样做一半操作排序、不排序会导致不同的结果:

这是不排序的结果:

image.png 这是排序的结果:

image.png

比如3,7,5三个数:

(3+7)/2+5=10

(3+5)/2+7=11

这就是为什么要排序的原因,让小的在前面 (3,5),/2之后的消耗就小,再加上后面的相对大值,结果就更大。

#include<bits/stdc++.h>
using namespace std;
int a[10005];
int main()
{
    int n;cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    // sort(a,a+n);
     int sum=a[0];
    for(int i=1;i<n;++i)
    {
       sum=(sum+a[i])/2;
    }

    printf("%d",sum);
    return 0;
}