首页 > 代码库 > nyist 17 -----纯递归纯递推--超时
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 ;
}
}