/*
题意:
给定L个整数A1,A2,...,An,按照从左到右的顺序选出尽量多的整数,
组成一个上升序列(子序列可以理解为:删除0个或者多个数,其他的数的吮吸不变)。
例如,1,6,2,3,7,5,可以选出上升子序列1,2,3,5,也可以选出1,6,7,
但前者更长,选出的上升子序列中相邻元素不能相等。
思路:
开辟一个栈,每次取栈顶元素s和读到的元素a做比较,如果a>s, 则加入栈;
如果a<s,则二分查找栈中的比a大的第1个数,并替换。 最后序列长度为栈的长度。
*/
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std; int a[]; int main()
{
int n,u,k;
while(cin>>n)
{
a[]=-;
k=;
for(int i=;i<n;i++)
{
cin>>u;
if(a[k]<u)
{
a[++k]=u;
}
else
{
int l=,r=k,mid;
while(l<=r)
{
mid=l+(r-l)/;
if(u>a[mid])
l=mid+;
else
r=mid-;
}
a[l]=u;
}
}
cout<<k<<endl;
}
}
 #include <stdio.h>
#include <string.h>
//author:YangSir
int a[];
int main(){
int n,i,max,b,num,x;
while(~scanf("%d",&n)){
num=;
a[]=-;
scanf("%d",&b);
a[]=max=b;
for(i=;i<n;i++){
scanf("%d",&b);//数组的每个值变化的过程就表示子串一个个代入
if(max<b){
max=b;
num++;
a[num]=max;//子串在增长
}
else{
x=num-;
while(a[x]>=b)
x--;
a[x+]=b;
}
max=a[num];//max可能会变
}
printf("%d\n",num);
}
return ;
}
 #include<stdio.h>
#include<algorithm>
using namespace std;
#define INF 1<<30
int main()
{
int n, a[], dp[]; while(~scanf("%d", &n))
{
for(int i=; i<n; i++)
{
scanf("%d", a+i);
dp[i] = INF;
}
for(int i=; i<n; i++)
*lower_bound(dp, dp+n, a[i]) = a[i];
printf("%d\n", lower_bound(dp, dp+n, INF)-dp);
}
return ;
}

Stock Exchange (最大上升子子串)的更多相关文章

  1. POJ3903:Stock Exchange(LIS)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87125#problem/E 题目: Description The world ...

  2. POJ 3903 Stock Exchange

    Stock Exchange Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2954   Accepted: 1082 De ...

  3. POJ 3903:Stock Exchange(裸LIS + 二分优化)

    http://poj.org/problem?id=3903 Stock Exchange Time Limit: 1000MS   Memory Limit: 65536K Total Submis ...

  4. POJ - 3903 Stock Exchange(LIS最长上升子序列问题)

    E - LIS Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u   Descripti ...

  5. POJ 3903 Stock Exchange (E - LIS 最长上升子序列)

    POJ 3903    Stock Exchange  (E - LIS 最长上升子序列) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action ...

  6. poj3903 Stock Exchange(最长上升子序列)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:id=3903">http://poj.org/problem?id=3903 Descrip ...

  7. poj3903 Stock Exchange 二分+dp

    题目地址:http://poj.org/problem?id=3903 题目: Description The world financial crisis is quite a subject. S ...

  8. Poj 3903 Stock Exchange(LIS)

    一.Description The world financial crisis is quite a subject. Some people are more relaxed while othe ...

  9. POJ3903 Stock Exchange LIS最长上升子序列

    POJ3903 Stock Exchange #include <iostream> #include <cstdio> #include <vector> #in ...

随机推荐

  1. 使用jsPlumb插件实现动态连线功能

    这周去看了两天的羽毛球亚锦赛,工作有提前晚上加班做一些,但是技术文章却拉下了. 这段时间一直在寻找可以实现前端元素动态连线的功能,找了好几个库,考虑过用d3或者原生svg和canvas来实现,最后和同 ...

  2. SQL触发器中的inserted表和deleted表

    开发也有年头了,但是触发器确实用的比较少,但是无容置疑触发器确实不错, 最近项目要求需要用到的触发器特别多.频繁,觉得很有必要记录和积累下. 在触发器语句中用两个特殊的表一个是deleted表和ins ...

  3. Eclipse+TestNG搭建接口自动化测试框架

    一.环境安装 1.前提 安装好jdk 配置好Java环境变量 安装Eclips 这些网上都有,就不再详细介绍. 资源分享链接:http://pan.baidu.com/s/1v9Fw6 2.安装Tes ...

  4. git下载仓库的部分目录

    有这样的需求,比如某个仓库里包含可执行文件[编译后的文件]或jar包之类的,他们太大我不需要而且我自己可以编译或导入: 或者是某个仓库是自己专门用来放demos的,里面有很多的demo项目,我可能只想 ...

  5. C++中的构造函数与析构函数及组合类的调用

    // 构造函数与析构函数及类的组合 #include "stdafx.h"#include <iostream>using namespace std; //枚举enu ...

  6. 【springcloud】2.eureka源码分析之令牌桶-限流算法

    国际惯例原理图 代码实现 package Thread; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomi ...

  7. ALV报表——点击事件(二)

    目录 一.ALV点击事件(双击) 一.ALV点击事件(双击) 代码: *Report ZRFI001_XFL_TEST REPORT ZRFI001_XFL_TEST . *定义ALV所需要用到的类型 ...

  8. linux测试umask

    客户需求,由于ftp服务器权限管理需要,测试能否通过修改oracle umask值,达到expdp导出文件权限,导出即是想要的权限. Session [oracle@adg1 ~]$ umask [o ...

  9. vue npm run build 失败

    之前删除过 node-moudel 文件夹,然后 npm install 重新安装,一切OK.打包的时候,报错,找不到caniuse什么的.再删除node-moudel,重新cnpm install ...

  10. intel ipp6.0安装过程

    由于最近看到一个代码中使用了intel ipp6.0库,了解到,ipp6.0是一个很强大的图像处理库,将其与opencv联合使用,还能够加速opencv的处理,在图像处理的过程中,是一个很重要的工具. ...