洛谷 1970 [NOIP2013] 花匠 贪心

来源:互联网 发布:杰威尔面膜好吗 知乎 编辑:程序博客网 时间:2024/05/19 16:47

题目:

https://www.luogu.org/problem/show?pid=1970

题目大意:
找最长的波动序列;
对于序列上的ai,满足ai-1< ai , ai >ai+1;

所以分两种情况讨论:
1.第一个数作为波谷;
2.第一个数作为波峰;

贪心;
时间: O(n);
空间: O(1);

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXN=2000001;int ans1=1,ans2=1,n,h,x;int read(){    int fla=1,ss=0;    char c=getchar();    while(c<'0' || c>'9')     {        c=getchar();        if(c=='-') fla=-1;    }    while(c>='0' && c<='9')    {        ss=ss*10+c-'0';        c=getchar();    }    return ss*fla;}void solve(){    n=read(),h=read();    for(int i=2;i<=n;i++)    {        x=read();        if(x>h) ans1=max(ans2+1,ans1);        else if(x<h) ans2=max(ans1+1,ans2);        h=x;    }    cout<<max(ans1,ans2)<<endl;    return;}int main(){    solve();    return 0;}
原创粉丝点击