zoukankan      html  css  js  c++  java
  • The Heaviest Non-decreasing Subsequence Problem

    最长非递减子序列变形题,把大于等于10000的copy五次放回去就可以了

    ac代码:

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    #define LL long long
    const LL N=200105;
    int a[N];
    int dp[N];
    int LIS(int a[],int len)
    {
        int dlen=1;
        memset(dp,0,sizeof(dp));
        dp[0]=a[0];//
        for(int i=1;i<len;i++)
        {
            if(a[i] < dp[0]) // 最开始的位置
            {
                dp[0]=a[i];
                continue;
            }
            if(a[i] >= dp[dlen-1])
            {
                dp[dlen++]=a[i];// new insert
            }
            else
            {
                int pos=upper_bound(dp,dp+dlen,a[i])-dp;//
                dp[pos]=a[i];
            }
        }
        return dlen;
    }
    int main()
    {
        int len=0;
        int x;
        while(~scanf("%d",&x))
        {
            if(x<0) continue;
            if(x>=10000)
            {
                x-=10000;
                for(int i=1;i<=5;i++) a[len++]=x;
            }
            else a[len++]=x;
        }
        /*
        for(int i=1;i<=14;i++)
        {
            scanf("%d",&x);
            if(x<0) continue;
            if(x>=10000)
            {
                x-=10000;
                for(int i=1;i<=5;i++) a[len++]=x;
            }
            else a[len++]=x;
        }
        */
      //  for(int i=1;i<=len;i++) cout<<a[i]<<' ';
      //  cout<<endl;
        cout<<LIS(a,len)<<endl;
        return 0;
    }
  • 相关阅读:
    jquery autocomplete
    hibernate 数据缓存
    Python变量类型
    Python基础语法
    Python环境搭建
    Python简介
    python下载地址
    第十、十一章,软件测试和软件演化
    第九章,软件实现
    第八章,面向对象设计
  • 原文地址:https://www.cnblogs.com/z1141000271/p/7590491.html
Copyright © 2011-2022 走看看