7
1 7 3 5 9 4 8
求最长上升子序列的个数
#include<iostream>
using namespace std;
int dp[10001];
int a[10001];
int main()
{
int max;
int i,j;
int n;
while(scanf("%d",&n)!=EOF)
{
max=0;
for(i=1;i<=n;i++)
{
dp[i]=1;
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
int min=0;
for(j=1;j<i;j++)
if(a[i]>a[j]&&dp[j]>min)
min=dp[j];
dp[i]+=min;
if(dp[i]>max)
max=dp[i];
}
cout<<max<<endl;
}
return 0;
}