nyoj 17
// nyoj 17 代码如上,用的是dp,总的来说就是对一个字符串
从末尾开始比较,设定一个数组,存放每个单调字串的最大长度,最后比较。。。
//要注意的就是里面if语句对于每次字符比较后,更新数组,自己在纸上画画就清楚了。。。
#include <iostream> #include <string.h> using namespace std; int main() { int i,j,len,dp[100]; char a[100]; cin>>a; len=strlen(a); for(i=0;i<=len-1;i++) dp[i]=1; for(i=len-2;i>=0;i--) for(j=i+1;j<=len-1;j++) if(a[i]<a[j]&&dp[i]<dp[j]+1) dp[i]=dp[j]+1; int Max=0; for(i=0;i<=len-1;i++) if(Max<dp[i]) Max=dp[i]; cout<<Max<<endl; }