最长上升子序列 O(nlogn)
Posted zlrrrr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长上升子序列 O(nlogn)相关的知识,希望对你有一定的参考价值。
#include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; #define inf 0x3f3f3f3f int N, ans; int dp[maxn], a[maxn], num[maxn]; int main() { scanf("%d", &N); for(int i = 0; i < N; i ++) scanf("%d", &a[i]); fill(dp, dp + N, inf); ans = -1; for(int i = 0; i < N; i ++) { int pos = lower_bound(dp, dp + N, a[i]) - dp; num[i] = pos + 1; ans = max(ans , num[i]); dp[pos] = a[i]; } printf("%d ", ans); return 0; }
以上是关于最长上升子序列 O(nlogn)的主要内容,如果未能解决你的问题,请参考以下文章