您的位置:首页 > 其它

【TYVJ】1024 外星人的密码数字

2015-07-08 23:48 267 查看
【解析】置换+DP

#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;

const int L=300;

char s[30]; int p[30];
char t[L]; int chg[L],lt,f[L],res;

inline int max(int i,int j)
{
return i>j?i:j;
}

int main(void)
{
scanf("%s",s);
for (int i=0;i<26;i++) p[s[i]-'a']=i;

for (;~scanf("%s",&t[1]);)
{
lt=strlen(&t[1]);
for (int i=1;i<=lt;i++) f[i]=1,chg[i]=p[t[i]-'a'];
for (int i=1;i<=lt;i++)
for (int j=i-1;j;j--)
if (chg[i]>=chg[j])
f[i]=max(f[i],f[j]+1);

res=0;
for (int i=1;i<=lt;i++) res=max(res,f[i]);
printf("%d",res);
}
printf("\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: