/*
题意:
给定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. Meta标签中的http-equiv属性

    http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变 ...

  2. 利用Nginx限制静态页面的访问权限(防盗链、禁止爬虫)

    1.限制爬虫配置 if ($http_user_agent ~* "spider|crapy|Sogou web spider|Baiduspider|Googlebot|Bingbot|3 ...

  3. Centos7网络连接

    参考链接:http://baijiahao.baidu.com/s?id=1597809303775176940(上面有些没说清楚,所以简化总结一丢丢) Step1 编辑 — 虚拟网络编辑器 — (管 ...

  4. QT QML之Label, TextField

    现在不是去想缺少什么的时候,该想一想凭现有的东西你能做什么.------ 海明威 <老人与海> Label { id: tipLabel width: 120 height: 40 tex ...

  5. python爬虫-爬取你想要的小姐姐

    一.准备 1. 原地址 2. 检查html发现,网页是有规则的分页, 最大图片的class为pic-large 二.代码 import requests import os from bs4 impo ...

  6. Python07之分支和循环2(if...else、if...elif...else)

    一:if语句具体语法: if 表达式: 语句块 (表达式可以是一个布尔值或变量,也可以为一个逻辑表达式或比较表达式,表达式为真(即不为0即可,见下方实例),则运行语句块:表达式为假,则跳过语句块,继续 ...

  7. 利用Python进行数据分析 第6章 数据加载、存储与文件格式(2)

    6.2 二进制数据格式 实现数据的高效二进制格式存储最简单的办法之一,是使用Python内置的pickle序列化. pandas对象都有一个用于将数据以pickle格式保存到磁盘上的to_pickle ...

  8. linux 设置用户组共享文件

    1.首先建立一个名为workgroup的用户组,然后向用户组里面添加两名用户 tom 和liming,并为其设置密码 sudo groupadd workgroup [sudo] lcy 的密码: s ...

  9. em...刚打完一点cf。。 有点子感悟

    首先,下笔一定要读清楚题目. 情况多考虑一下. 这几次的模拟赛,分类思想很重要,往往一大坨东西扔给你,你不去尝试分类的话就很难整理清楚.

  10. 2..net core 和.net framework 版本

    同一台机器上可以安装多个版本的.net core runtime.比如: 每个.net core项目都可以指定自己所用的版本,所以改变某个项目的target version不会影响到其他的.安装新的r ...