nyist 17 -----纯递归纯递推--超时


#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char a[10002];
int b[10002];
int n,ans;
int f(int x)
{
int i,t;
for(i=0;i<=x-1;i++)
{
t=f(i);
if(a[i]<a[x] && b[x]<t+1) b[x]=t+1;
}
return b[x];
}

int main( )
{
int i,j,len;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%s",a);
len=strlen(a) ;
for(j=0;j<len;j++) b[j]=1;
f(len-1);
ans=1;
for(j=0;j<len;j++)
if(ans<b[j]) ans=b[j];
cout<<ans<<endl ;
}

}

 

 

*******************************************************************************************************************************

 

 

#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char a[10002];
int b[10002];
int n,ans;
int f(int x)
{
int i,t;
if(b[x]>1) return b[x];

for(i=0;i<=x-1;i++)
{t=f(i);
if(a[i]<a[x] && b[x]<t+1) b[x]=t+1;
}
return b[x];
}

int main( )
{
int i,j,len;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%s",a);
len=strlen(a) ;
for(j=0;j<len;j++) b[j]=1;
f(len-1);
ans=1;
for(j=0;j<len;j++)
if(ans<b[j]) ans=b[j];
cout<<ans<<endl ;
}

}

 

 

 

 

 

 

 

 

 


******************************************************************************

 

 


#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char a[10002];
int b[10002];
int n,ans;
int f(int x)
{
int i,t;
if(b[x]>0) return b[x];

for(i=0;i<=x-1;i++)
{t=f(i);
if(a[i]<a[x] && b[x]<t+1) b[x]=t+1;
}
return b[x];
}

int main( )
{
int i,j,len;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%s",a);
len=strlen(a) ;
for(j=0;j<len;j++) b[j]=1;
f(len-1);
ans=1;
for(j=0;j<len;j++)
if(ans<b[j]) ans=b[j];
cout<<ans<<endl ;
}

}

 

 

 

***************************************************************

 


#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char a[10002];
int b[10002];
int n,ans;
int f(int x)
{
int i,t;
if(b[x]!=0) return b[x];

for(i=0;i<=x-1;i++)
{t=f(i);
if(a[i]<a[x] && b[x]<t+1) b[x]=t+1;
}
return b[x];
}

int main( )
{
int i,j,len;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%s",a);
len=strlen(a) ;
for(j=0;j<len;j++) b[j]=0;
f(len-1);
ans=1;
for(j=0;j<len;j++)
if(ans<b[j]) ans=b[j];
cout<<ans<<endl ;
}

}

 

 

 

posted @ 2014-08-12 17:04  2014acm  阅读(201)  评论(0编辑  收藏  举报