• LUOGU P1970 花匠 (Noip 2013)


    传送门

    解题思路

    好多大佬用的dp啊,貌似贪心可以做,每次所选的一定是每个连续递增或递减序列的最后,直接模拟就行了,注意判断一下头和尾相等的情况。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    
    using namespace std;
    const int MAXN = 100005;
    
    inline int rd(){
        int x=0,f=1;char ch=getchar();
        while(!isdigit(ch)) {f=ch=='-'?0:1;ch=getchar();}
        while(isdigit(ch))  {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
        return f?x:-x;
    }
    
    int n,ans,h[MAXN],pre;
    bool flag;
    
    int main(){
        n=rd();h[1]=rd();ans=1;;
        if(n==1) {puts("1");return 0;}
        h[2]=rd();if(h[2]>h[1]) flag=1;pre=h[2];
        for(int i=3;i<=n;i++) {
            h[i]=rd();
            if(!flag){
                if(h[i]>pre) {flag=1;pre=h[i];ans++;}
                else pre=h[i];
            }
            else{
                if(h[i]<pre) {flag=0;pre=h[i];ans++;}
                else pre=h[i];
            }
        }cout<<ans+1<<endl;
        return 0;
    }
    View Code
  • 相关阅读:
    Android访问数据库(SQL Server 和 MySQL)
    Andriod开发环境搭建
    SQL 学习记录
    安装双系统 win7 + ubuntu 15.04
    SQL资料
    电脑使用
    python_L7
    ONE
    网页性能优化
    js的继承
  • 原文地址:https://www.cnblogs.com/sdfzsyq/p/9681161.html
Copyright © 2020-2023  润新知