zoukankan      html  css  js  c++  java
  • P1970 花匠

    题意:给一个序列,让你删去最少的数使得剩余数满足下列条件之一

       1、对于所有正整数i,满足$b_{2i}<b_{2i+1},b_{2i}<b_{2i-1}$

       2、对于所有正整数i,满足$b_{2i}>b_{2i+1},b_{2i}>b_{2i-1}$

       问最多留下多少数

    以f[i]代表从1到i最后一次上升的长度

    以g[i]代表从1到i最后一次下降的长度

    递推。。。。

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cctype>
    #include<algorithm>
    using namespace std;
    #define int long long
    #define olinr return
    #define _ 0
    #define love_nmr 0
    #define DB double
    inline int read()
    {
        int x=0,f=1;
        char ch=getchar();
        while(!isdigit(ch))
        {
            if(ch=='-')
                f=-f;
            ch=getchar();
        }
        while(isdigit(ch))
        {
            x=(x<<1)+(x<<3)+(ch^48);
            ch=getchar();
        }
        return x*f;
    }
    inline void put(int x)
    {
        if(x<0)
        {
            x=-x;
            putchar('-');
        }
        if(x>9)
            put(x/10);
        putchar(x%10+'0');
    }
    int h[105050];
    int f[105050];
    int g[105050];
    signed main()
    {
        int n;
        n=read();
        for(int i=1;i<=n;i++)
            h[i]=read();
        f[1]=1;
        g[1]=1;
        for(int i=2;i<=n;i++)
        {
            if(h[i]>h[i-1])
                f[i]=g[i-1]+1;
            else
                f[i]=f[i-1];
            if(h[i]<h[i-1])
                g[i]=f[i-1]+1;
            else
                g[i]=g[i-1];
        }
        put(max(f[n],g[n]));
        olinr ~~(0^_^0)+love_nmr;
    }
  • 相关阅读:
    js 获取url参数
    new Date()日期在IOS的兼容问题
    js判断是否为微信浏览器
    ionic3 带数据返回上一页
    ionic3 打包android apk
    https打开有地图页面问题
    限制字符个数
    placeholder兼容ie
    Sequence Classification
    Part of Speech Tagging
  • 原文地址:https://www.cnblogs.com/olinr/p/9549450.html
Copyright © 2011-2022 走看看