zoukankan      html  css  js  c++  java
  • NOIP 2013 花匠 神仙操作

    题目:https://www.luogu.org/problemnew/show/P1970

    今天又学习了一个新的神仙操作;

    标签是DP,想了一下,没什么心情写,默默打开题解——(狂喜!)

    一位大佬(LittlePrincess)的思路简直是颠覆脑回路!!

    根据A,B两个条件的描述,只要求有几个波峰波谷就好了。如果在上升突然下降ans就++;

    反之同理;

    注意,如果在最后的时候还在下降要把最后的一个加上;

    因为在最后还在上升时,h[n+1](=0)<h[n] 所以ans会加上;

    但是在最后还在下降时,h[n+1]<h[n],ans不会加上,所以要特判一下;

    可以算是贪心的做法了(相对于正解DP来说);

    上代码

    #include<cstdio>
    using namespace std;
    
    int n,h[150000],ans=1;
    bool jud;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&h[i]);
        }
        if(h[2]>=h[1]) jud=1;
        for(int i=1;i<=n;i++)
        {
            if(jud==0&&i==n) 
            {
                ans++;
                break;
            }
            if(jud==1)
            {
                if(h[i+1]<h[i]) 
                {
                    ans++;
                    jud=0;
                    continue;
                }
            }
            if(jud==0)
            {
                if(h[i+1]>h[i])
                {
                    ans++;
                    jud=1;
                    continue;
                }
            }
        }
        printf("%d",ans);
        return 0;
    }
  • 相关阅读:
    Matrix
    Color the ball
    Coupons
    密码箱
    Milking Grid
    Substrings
    亲和串
    Jzzhu and Cities
    transition多个属性同时渐变(left/top)
    CSS3提供的transition动画
  • 原文地址:https://www.cnblogs.com/WHFF521/p/10851332.html
Copyright © 2011-2022 走看看