Description
给出一个长度为N的数字串,找出一个严格上升的数字序列来.
Format
Input
第一行给出数字N
接下来给出N个数字
N<=1000
Output
如题
Samples
输入数据 1
7
1 7 3 5 9 4 8
输出数据 1
4
此题是个模板题,套就行了:
Code:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[1010];
int dp[1010];
int ans;
int main() {
cin>>n;
for(int i=1; i<=n; i++) cin>>a[i];
for(int i=1; i<=n; i++) {
int max1=0;
for(int j=1; j<=i-1; j++)
if(a[i]>a[j]&&dp[j]>max1)//如果j能接在i的后面
max1=dp[j];
dp[i]=max1+1;//加上自己
ans=max(ans,dp[i]);
}
cout<<ans<<endl;
return 0;
}