POJ - 2533 Longest Ordered Subsequence(最长上升子序列)
d.最长上升子序列
s.注意是严格递增
c.O(nlogn)
#include<iostream>
#include<stdio.h>
using namespace std; const int MAXN=;
int a[MAXN],b[MAXN];
//b[k]是序列a中所有长度为k的递增子序列中的最小结尾元素值
//用二分查找的方法找到一个位置,使得num>b[i-1]并且num<b[i],并用num代替b[i]
int Search(int num,int low,int high){
int mid;
while(low<=high){
mid=(low+high)/;
if(num>=b[mid])low=mid+;
else high=mid-;
}
return low;
}
int DP(int n){
int i,len,pos;
b[]=a[];
len=;
for(i=;i<=n;i++){
if(a[i]>b[len]){//如果a[i]比b[]数组中最大还大直接插入到后面即可
len=len+;
b[len]=a[i];
}
else{//用二分的方法在b[]数组中找出第一个比a[i]大的位置并且让a[i]替代这个位置
pos=Search(a[i],,len);
b[pos]=a[i];
}
}
return len;
} int main(){ int N;
int i; while(~scanf("%d",&N)){
for(i=;i<=N;++i){
scanf("%d",&a[i]);
} printf("%d\n",DP(N));
} return ;
}
c2.O(n^2)
#include<iostream>
#include<stdio.h>
using namespace std; #define MAXN 1005 int a[MAXN];
int dp[MAXN];//dp[i]表示以a[i]作为结尾的最长上升子序列的长度 int main(){ int N;
int i,j;
int temp;
int ans; while(~scanf("%d",&N)){ for(i=;i<=N;++i){
scanf("%d",&a[i]);
} dp[]=; for(i=;i<=N;++i){ temp=; for(j=;j<i;++j){
if(a[i]>a[j]){
if(temp<dp[j]){
temp=dp[j];
}
}
} dp[i]=temp+;
} ans=;
for(i=;i<=N;++i){
if(dp[i]>ans){
ans=dp[i];
}
} printf("%d\n",ans);
} return ;
}
POJ - 2533 Longest Ordered Subsequence(最长上升子序列)的更多相关文章
- poj 2533 Longest Ordered Subsequence 最长递增子序列
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4098562.html 题目链接:poj 2533 Longest Ordered Subse ...
- POJ 2533 - Longest Ordered Subsequence - [最长递增子序列长度][LIS问题]
题目链接:http://poj.org/problem?id=2533 Time Limit: 2000MS Memory Limit: 65536K Description A numeric se ...
- poj 2533 Longest Ordered Subsequence 最长递增子序列(LIS)
两种算法 1. O(n^2) #include<iostream> #include<cstdio> #include<cstring> using namesp ...
- POJ 2533 Longest Ordered Subsequence 最长递增序列
Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequenc ...
- POJ 2533 Longest Ordered Subsequence(裸LIS)
传送门: http://poj.org/problem?id=2533 Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 6 ...
- POJ - 2533 Longest Ordered Subsequence与HDU - 1257 最少拦截系统 DP+贪心(最长上升子序列及最少序列个数)(LIS)
Longest Ordered Subsequence A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let ...
- 题解报告:poj 2533 Longest Ordered Subsequence(最长上升子序列LIS)
Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence ...
- POJ 2533 Longest Ordered Subsequence(最长上升子序列(NlogN)
传送门 Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subseque ...
- POJ 2533 Longest Ordered Subsequence(DP 最长上升子序列)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 38980 Acc ...
- POJ 2533 Longest Ordered Subsequence(LIS模版题)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 47465 Acc ...
随机推荐
- jQuery.retryAjax
Overload method for $.ajax that provides the ability to try the request over if it fails the first t ...
- Spring注解实例
public class ActivityAction extends CoreAction { private static final Logger log = Logger.getLogger( ...
- Javascript 去掉字符串前后空格的五种方法
第一种:循环检查替换 [javascript] //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 functi ...
- 在iframe下的页面锚点失效问题,用jquery进行修复
应用场景是:iframe页面没有滚动条,在父窗体中出现滚动条,锚点标记就会失效,因为,锚点是根据当前窗口滚动条滚动窗口的,成为子窗体后没有了滚动条,自然不会滚动. 解决办法是:用js判断页面是否被嵌套 ...
- CGI相关概念
common gateway interface 通用网关接口 可以让客户端从浏览器向执行在服务器上的程序请求数据.CGI描述了客户端和服务器程序之间传输数据的一种标准. 编程语言perl是一种被广泛 ...
- Mock框架
MoQ(基于.net3.5,c#3.0的mock框架)简单介绍 - 你听海是不是在笑 - 博客园 http://www.cnblogs.com/nuaalfm/archive/2009/11/25/1 ...
- SPOJ #536. How many Fibs
Since number could be 10^100, we have to use large number processing method, in string. A simpler me ...
- lucene.net 使用过程中的 几个注意事项(含termquery 和QueryParser 的区别)
几个注意事项1.建立索引时 插入的顺序(不设置document和字段的boost) 会影响到 查询结果的默认排序,建议:将最新生成的文章 最后建索引 这样 查询结果首先显示的是 最后插入的数据2.Bo ...
- 51nod 1150 Logarithm
题目来源: Ural 1318 给出n个互不相等的整数A[0] - A[n-1],选A[i]同A[j]进行异或运算(结果都 > 0无符号),对结果取lg(以10为底)并取整后记为L[i,j],求 ...
- .net下连接数据库
可以新建一个按钮,在click事件下,写入一下代码 using( SqlConnection conn=new SqlConnection(Data source=.; Catalog Initial ...