题目链接:
http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=17
分析:
i=1
dp[i]=1
i!=1
dp[i]=max(dp[j]+1) j<i&&a[j]<a[i]
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
getchar();
while(n--)
{
char a[];
gets(a);
int l=strlen(a);
int dp[l];
dp[]=;
for(int i=;i<l;i++)
{
int t=;
for(int j=;j<i;j++)
{
if(a[j]<a[i])
{
if(t<dp[j])
{
t=dp[j];
}
}
}
dp[i]=t+;
}
int t=dp[];
for(int i=;i<l;i++)
{
if(t<dp[i])
{
t=dp[i];
}
}
printf("%d\n",t);
}
return ;
}