CodeForces 191A

Posted strategist-614

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces 191A相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp Codeforces片段

Codeforces 86C Genetic engineering(AC自动机+DP)

CodeForces 1005D Polycarp and Div 3(思维贪心dp)

(Incomplete) Codeforces 394 (Div 2 only)

CodeForces 931F Teodor is not a liar!

这个c代码有啥问题?