Vijos P1028 魔族密码(动态规划YY思维)

思路:以为是一道很难的DP、抱着试一试的想法去暴力了这道题、= =||发现暴力都才30ms.....无语了

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=105;
char str[2005][80];
int dp[2005];
int n,t;
int judge(char str1[80],char str2[80])
{
    int len=strlen(str2);
    int flag=1;
    for(int i=0;i<len;i++)
    {
        if(str1[i]!=str2[i])
        {
            flag=0;break;
        }
    }
    return flag;
}
int main()
{
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s",str[i]);
    }
    for(int i=0;i<n;i++)
        dp[i]=1;
    for(int i=1;i<n;i++)
    {
        for(int j=i-1;j>=0;j--)
        {
            if(judge(str[i],str[j]))//判断是否包含
            {
               dp[i]=dp[j]+1;
               break;
            }
        }
    }
    int maxx=0;
    for(int i=0;i<n;i++)
        maxx=max(maxx,dp[i]);
    printf("%d\n",maxx);
    return 0;
}


你可能感兴趣的:(动态规划YY)