2014年3月6日 星期四

[HOJ] 179 - 爆炸的期中考


#include<stdio.h>
#include<string.h>
#include<algorithm>
using std::max;
int dp[26][26];
char in[15];
int main(){
    int n,i,j,k,s,t,l,T;
    scanf("%d",&T);
    while(T--){
        memset(dp,-1,sizeof(dp));
        scanf("%d",&n);
        for(i=0;i<n;i++){
            scanf("%s",in);
            l=strlen(in);
            s=in[0]-'a';
            t=in[l-1]-'a';
            for(j=0;j<26;j++){
                if(dp[j][s]==-1) continue;
                dp[j][t]=max(dp[j][t],dp[j][s]+l);
            }
            dp[s][t]=max(dp[s][t],l);
        }
        int ans=0;
        for(i=0;i<26;i++)
            ans=max(ans,dp[i][i]);
        printf("%d\n",ans);
    }
}

沒有留言:

張貼留言