CF191A Dynasty Puzzles
tangtangpeng · · 个人记录
题意
给你
思路
答案的单词串首尾相等,那么我们以此为突破口设计状态,为了方便,将
最后
代码
#include <bits/stdc++.h>
using namespace std;
const int N = 30;
int n, f[N][N];
int ans;
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
char s[N];
scanf("%s", s);
int len = strlen(s);
//cout << len << endl;
int l = s[0] - 'a', r = s[len - 1] - 'a';
for(int j = 0; j < 26; j++)
if(f[j][l]) f[j][r] = max(f[j][r], f[j][l] + len);
f[l][r] = max(f[l][r], len);
}
for(int i = 0; i < 26; i++)
ans = max(ans, f[i][i]);
printf("%d", ans);
return 0;
}