POJ 2181 贪心

思路:
贪心

对于每个波浪 ans+=最大值-最小值

注意最后一定是选最大值

//By SiriusRen
#include <cstdio>
using namespace std;
int n,a[150500],flag,ans;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)
        if(flag&&a[i]<a[i-1])ans+=a[i-1],flag=!flag;
        else if(!flag&&a[i]>a[i-1])ans-=a[i-1],flag=!flag;
    if(flag)ans+=a[n];
    printf("%d\n",ans);
}

这里写图片描述

posted @ 2016-10-31 11:14  SiriusRen  阅读(205)  评论(0编辑  收藏  举报