POJ 2533 Longest Ordered Subsequence (LIS)
来源:互联网 发布:淘宝潮男衣服店铺推荐 编辑:程序博客网 时间:2024/04/26 10:16
最长上升子序列
O(n*logn)
//#pragma commmpnt(linkmpr, "/STACK:102400000,102400000")#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <queue>using namespace std;typedef long long LL;const int M = 100010;const int INF =0x3f3f3f3f;const int MAXN=10010;int a[MAXN],b[MAXN];//用二分查找的方法找到一个位置,使得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)/2; if(num>=b[mid]) low=mid+1; else high=mid-1; } return low;}int DP(int n){ int i,len,pos; b[1]=a[1]; len=1; for(i=2; i<=n; i++) { if(a[i]>b[len])//如果a[i]比b[]数组中最大还大直接插入到后面即可 { len=len+1; b[len]=a[i]; } else //用二分的方法在b[]数组中找出第一个比a[i]大的位置并且让a[i]替代这个位置 { pos=Search(a[i],1,len); b[pos]=a[i]; } } return len;}int main(){ int n; scanf("%d",&n); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for(int i=1;i<=n;++i) { cin>>a[i]; } cout<<DP(n)<<endl; return 0;}
O(n^2)
//#pragma commmpnt(linkmpr, "/STACK:102400000,102400000")#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <queue>using namespace std;typedef long long LL;const int M = 100010;const int INF =0x3f3f3f3f;const int MAXN=10010;int a[MAXN],b[MAXN];int dp[MAXN];int main(){ int n; scanf("%d",&n); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(dp,0,sizeof(dp)); for(int i=1; i<=n; ++i) { cin>>a[i]; } int maxlen=0; //dp[1]=0; for(int i=1; i<=n; ++i) { dp[i]=1; for(int j=1; j<=i; ++j) { if(a[j]<a[i] && dp[j]+1 >dp[i]) { dp[i]=dp[j]+1; } if(dp[i]>maxlen) { maxlen=dp[i]; } } } cout<<maxlen<<endl; return 0;}
0 0
- poj - 2533 - Longest Ordered Subsequence(LIS)
- Poj 2533 Longest Ordered Subsequence(LIS)
- poj 2533 Longest Ordered Subsequence (LIS)
- POJ 2533 Longest Ordered Subsequence (LIS)
- POJ 2533 Longest Ordered Subsequence(LIS)
- POJ 2533 Longest Ordered Subsequence (LIS)
- POJ-2533Longest Ordered Subsequence(LIS)
- POJ 2533 Longest Ordered Subsequence(LIS)
- POJ 2533 Longest Ordered Subsequence 典型LIS
- POJ 2533 Longest Ordered Subsequence DP(LIS)
- POJ 2533 : Longest Ordered Subsequence - LIS问题
- POJ 2533 Longest Ordered Subsequence (LIS)
- [POJ 2533]Longest Ordered Subsequence[LIS]
- POJ 2533-Longest Ordered Subsequence(裸LIS)
- POJ 2533-Longest Ordered Subsequence(DP:LIS)
- POJ 2533 Longest Ordered Subsequence(dp LIS)
- POJ 2533 Longest Ordered Subsequence (模版LIS)
- POJ 2533 Longest Ordered Subsequence (DP)【 LIS】
- 关系演算
- iOS编程------动画
- 软件测试行业浅析
- 装饰模式
- 1023. 组个最小数 (20)
- POJ 2533 Longest Ordered Subsequence (LIS)
- 程序题
- @ModelAttribute运用详解
- 域关系演算
- HP实训软件测试第一阶段测试基础知识总结
- C++输出格式
- C++ const用法
- 创建型模式之一——简单工厂模式
- Sicily 1151. 魔板