Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 80802 Accepted Submission(s): 31005
#include <iostream> using namespace std; const int MAXN = 10000; int n,num[MAXN]; int LIS(){ int ans = 1; int dp[MAXN]; dp[1] = 1; for(int i = 2;i <= n; i++){ int max = 0; for(int j = 1;j < i; j++){ if(dp[j] > max && num[j] < num[i]) max = dp[j]; } dp[i] = max + 1; if(dp[i] > ans) ans = dp[i]; } return ans; } int main() { while(cin>>n){ for(int i = 1;i <= n; i++) cin>>num[i]; cout<<LIS()<<endl; } return 0; }
原文:https://www.cnblogs.com/jingshixin/p/12304064.html