zoukankan      html  css  js  c++  java
  • 繁华模拟赛 最长上升子串

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int n,a[300005],l[300005],r[300005],ans;
    int main(){
        freopen("lis.in","r",stdin);
        freopen("lis.out","w",stdout);
        cin>>n;
        for(int i = 1;i <= n;i++) scanf("%d",&a[i]);
        for(int i = 1;i <= n;i++){
            if(a[i] > a[i-1]) l[i] = l[i-1] + 1;
            else l[i] = 1;
        }
        r[n] = 1;
        for(int i = n - 1;i >= 1;i--){
            if(a[i] < a[i+1]) r[i] = r[i+1] + 1;
            else r[i] = 1;
        }
        for(int i = 1;i <= n;i++){
            if(a[i-1] <= a[i+1] - 2) ans = max(ans,l[i-1] + r[i+1] + 1);
            else ans = max(ans,l[i-1] + 1);
        }
        cout<<ans;
        return 0;
    }
    
    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<queue>
    #include<map>
    #include<set>
    #include<stack>
    #include<cstdlib>
    #define INF 100000000
    #define fi first
    #define se second
    using namespace std;
    typedef long long LL;
    typedef pair<int,int> pii;
    int a[300005],l[300005],r[300005];
    int main()
    {
        int n,i,cou=0,ans=0;
        freopen("lis.in","r",stdin);
        freopen("lis.out","w",stdout);
        cin>>n;
        a[0]=0;
        a[n+1]=0;
        for(i=1;i<=n;i++)
            scanf("%d",&a[i]);
        for(i=1;i<=n;i++)
        {
            if(a[i]>a[i-1])
            {
                cou++;
                l[i]=cou;
            }
            else
                cou=1,l[i]=cou;
        }
        cou=0;
        for(i=n;i>=1;i--)
        {
            if(a[i]<a[i+1])
            {
                cou++;
                r[i]=cou;
            }
            else
                cou=1,r[i]=cou;
        }
        for(i=1;i<=n;i++)
        {
            if(a[i-1]+1<a[i+1])
                ans=max(ans,l[i-1]+1+r[i+1]);
            else
            {
                ans=max(ans,l[i-1]+1);
                ans=max(ans,r[i+1]+1);
            }
        }
        cout<<ans<<endl;
        return 0;
    }
    // davidlee1999WTK 2014/
    // srO myk Orz
    //ios::sync_with_stdio(false);
  • 相关阅读:
    jmeter跨平台执行时的文件路径问题
    jenkins配置
    jmeter--负载测试
    jmeter-脚本制作
    jmeter学习-性能指标、jmeter初识
    功能测试--其他
    功能测试--Fiddler
    功能测试--APP专项
    功能测试--基础(二)
    功能测试-基础(一)
  • 原文地址:https://www.cnblogs.com/hyfer/p/5791473.html
Copyright © 2011-2022 走看看