wikioi 1576 最长严格上升子序列
简单的最长严格上升子序列的题
dp[i]表示到a[i]这个数为最后的时候最大的长度是多少
然后就差不多了吧~
#include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <queue> #include <typeinfo> typedef long long ll; using namespace std; int a[1000]; int dp[1000]; int main() { int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; dp[0]=1; int ans=1; int maxn; for(int i=1;i<n;i++) { maxn=0; for(int j=0;j<i;j++) { if(maxn<dp[j]&&a[i]>a[j])maxn=dp[j]; } dp[i]=maxn+1; ans=max(ans,dp[i]); } cout<<ans<<endl; }