您的位置:首页 > 其它

TYVJ 1113 魔族密码 解题报告

2011-08-06 14:49 260 查看
  DP:f[i] = f[j] + 1 (1<= j < i, 且j是i的前缀.)

  代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char str[2001][501];
int f[2001];
int ans = 0;

int main(int argc, char **argv)
{
int i, j;
int n;
scanf("%d", &n);
for(i = 1; i <= n; i++){
scanf("%s", str[i]);
}
for(i = 1; i <= n; i++){
for(j = 1; j < i; j++){
if(f[j] > f[i] && strncmp(str[i], str[j], strlen(str[j])) == 0){
f[i] = f[j];
}
}
f[i]++;
if(ans < f[i]){
ans = f[i];
}
}
printf("%d\n", ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: