标签:must contain 最大 and math poj 查找 let 题解
Time limit2000 ms
Memory limit65536 kB
Input
Output
Sample Input
7 1 7 3 5 9 4 8
Sample Output
4
题意 求最大上升子序列的长度
题解 dp[i]就是以a[i]为末尾的最长上升子序列的长度,我写的是O(n^2)的复杂度,也可以用二分查找去找,那个是O(nlog n)
#include<iostream> #include<algorithm> #include<cstring> #include<sstream> #include<cmath> #include<cstdlib> #include<queue> #include<stack> using namespace std; #define PI 3.14159265358979323846264338327950 #define INF 0x3f3f3f3f; int n; int dp[1010]; int a[1010]; void solve() { int res=0; for(int i=0;i<n;i++) { dp[i]=1; for(int j=0;j<i;j++) { if(a[j]<a[i]) { dp[i]=max(dp[i],dp[j]+1); } } res=max(res,dp[i]); } printf("%d\n",res); } int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i]; solve(); }
poj-2533 longest ordered subsequence(动态规划)
标签:must contain 最大 and math poj 查找 let 题解
原文地址:https://www.cnblogs.com/smallhester/p/9499220.html