北大oj百练-2757:最长上升子序列

#include using namespace std; int a[1010],dp[1010]; //dp[i]表示以第i个数为终点时的最大上升子序列 int max(int a,int b) { if(a>b)return a; else return b; } int main() { int n; cin >> n; for(int i=1; i<=n; i++) { cin >> a[i]; } for(int i=1; i<=n; i++) { dp[i]=1; } for(int i=2; i<=n; i++) { for(int j=1; ja[j]) { dp[i]=max(dp[i],dp[j]+1); } } } int max=0; for(int i=1; i<=n; i++) { if(dp[i]>max) max=dp[i]; } cout << max <

    推荐阅读