NOIp2018铺设道路(提高组T1)————模拟,贪心

本题主要考查模拟,贪心,我们可以画出柱状图来分析。当左边的一堆比右边矮,左边的一堆摆完后,右边的还差一点,那么摆放次数s加上两堆的高度差。
代码如下:

#include<iostream>
using namespace std;
int n,sum=0,i,j;
int h[10000001];
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)cin>>h[i];
    sum=h[1];
    for(i=1;i<=n;i++)
    {
        if(h[i+1]>h[i])sum+=h[i+1]-h[i];
    }
    cout<<sum;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/wly1127/article/details/84497772