zoukankan      html  css  js  c++  java
  • csu 1553: Good subsequence (最长连续子序列)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?cid=2071&pid=6

    题意:有一个由n个数组成的序列 

             要求出一个满足 max-min<=k 的最长子序列

    思路:(听说数据大的情况可以用单调栈解决 但是我只是纯粹暴力了)

              首先枚举左界 把max和min都赋值为 a[i]

               再枚举右界 每次判断max-min是否小于等于k

               求出最大值

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cmath>
    #include<stdlib.h>
    #include<algorithm>
    #include<queue>
    #include<stack>
    #include<ctype.h>
    using namespace std;
    int a[10000+100];
    int main()
    {
        int n,k;
        int i,j;
        while(scanf("%d%d",&n,&k)!=EOF)
        {
            int ans=1;
            for(i=0;i<n;i++) scanf("%d",&a[i]);
            for(i=0;i<n;i++)
            {
                if(n-i<ans) break;
                int temp=1;
                int maxx=a[i];
                int minn=a[i];
                for(j=i+1;j<n;j++)
                {
                    if(a[j]>maxx)
                    {
                        maxx=a[j];
                    }
                    else if(a[j]<minn)
                    {
                        minn=a[j];
                    }
                    if(maxx-minn>k) break;
                    temp++;
                }
                if(ans<temp) ans=temp;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    

      

  • 相关阅读:
    Model1简介
    修改Maven的本地仓库地址
    JavaWeb实现上传文件
    数据库
    集合
    JavaWeb
    Java基础
    Redis 中 redis.conf配置详细解析
    利用Java生成二维码
    利用dom4j读写XML
  • 原文地址:https://www.cnblogs.com/sola1994/p/4376703.html
Copyright © 2011-2022 走看看