码迷,mamicode.com
首页 > 其他好文 > 详细

CodeForces 191A

时间:2020-04-03 00:28:48      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:turn   直接   string   for   def   ++   code   str   字符   

CodeForces 191A

考虑 dp

dp[i][j] 表示 以i 为开头以 j 为结尾字符串能够满足条件的最大值。

因为要满足 a...b,c....d a == d && b == c 的条件。。

直接

        for (int j = 1; j <= 26; j++)
        {
            if (dp[j][st])
                dp[j][ed] = max(dp[j][ed], dp[j][st] + m);
        }
        dp[st][ed] = max(dp[st][ed], m);

枚举开头进行更新,或者枚举结尾的位置更新也行。。

int dp[100][100];
string s[N];
int main()
{
    int n;
    cin >> n;
    rep(i, n)
    {
        cin >> s[i];
    }
    rep(i, n)
    {
        int m = s[i].size();
        int st = s[i][0] - ‘a‘ + 1;
        int ed = s[i][m - 1] - ‘a‘ + 1;
        for (int j = 1; j <= 26; j++)
        {
            if (dp[j][st])
                dp[j][ed] = max(dp[j][ed], dp[j][st] + m);
        }
        dp[st][ed] = max(dp[st][ed], m);
    }
    int ans = 0;
    for (int i = 1; i <= 26; i++)
    {
        ans = max(ans, dp[i][i]);
    }
    cout << ans << endl;
    return 0;
}

CodeForces 191A

标签:turn   直接   string   for   def   ++   code   str   字符   

原文地址:https://www.cnblogs.com/strategist-614/p/12623772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!