nyist 17 -----动态规划DP--Accept

#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char a[10002];
int b[10002];
int n,ans;
int dp(int x)
{
int i,j,max;
b[0]=1;

for(i=1;i<=x;i++)
{max=1;
for(j=0;j<i;j++)
if(a[j]<a[i] && max<b[j]+1) max=b[j]+1;
b[i]=max;
}
}

int main( )
{
int i,j,len;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%s",a);
len=strlen(a) ;

dp(len-1);
ans=1;
for(j=0;j<len;j++)
if(ans<b[j]) ans=b[j];
cout<<ans<<endl ;
}

}

 

******************************************************************88

#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char a[10002];
int b[10002];
int n,ans;
int dp(int x)
{
int i,j,max;
ans=b[0]=1;

for(i=1;i<=x;i++)
{max=1;
for(j=0;j<i;j++)
if(a[j]<a[i] && max<b[j]+1) max=b[j]+1;
b[i]=max;
if(b[i]>ans) ans=b[i];
}
}

int main( )
{
int i,j,len;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%s",a);
len=strlen(a) ;

dp(len-1);

cout<<ans<<endl ;
}
}

 

 

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