花匠【NOIP2013提高组】

来源:互联网 发布:淘宝客户投诉质量问题 编辑:程序博客网 时间:2024/04/29 16:50

题目就不放上来了

起初我以为是动态规划,看了好多题解也是动态规划。

然后灵光一闪。。。

将所有端点连线画下来,比如这个样例

样例数据

5 3 2 1 2


它一定是呈波浪形的,然后我们找到波浪的端点即可,如图中的5,1,2

类似于贪心

# include <cstdio># include <cstdlib># include <cctype># include <cmath># include <ctime># include <cstring># include <string># include <iostream># include <algorithm>using namespace std;int n,a[100005];int getint(){int i=0;char c;for(c=getchar();c<'0'||c>'9';c=getchar())    ;for(;c>='0'&&c<='9';c=getchar())    i=(i<<3)+(i<<1)+c-'0';return i;}int main(){//freopen("1.in","r",stdin);//freopen("1.out","w",stdout);int i,sum;bool i1;n=getint();for(i=1;i<=n;i++)    a[i]=getint();for(i=1;i<=n;i++){if(a[i+1]>a[i]){        i1=true;        break;    }    if(a[i+1]<a[i])    {    i1=false;    break;    }}sum=1;for(i=1;i<n;i++)    if(i1)    {        if(a[i+1]<a[i])        {        sum++;        i1=false;        }    }    else    {    if(a[i+1]>a[i])    {    sum++;    i1=true;    }    }cout<<sum+1<<endl;return 0;}


0 0