TopCoder

Caido
主唱太拼命了

User's AC Ratio

96.0% (24/25)

Submission's AC Ratio

81.2% (82/101)

Tags

Description

給定兩個長度分別為 N,M 的字串 a,b,請輸出滿足以下條件的字串 c 的長度:

  • ca 的子序列
  • cb 的子序列
  • c 為回文字串
  • c 為所有滿足以上三條的字串中最長的

定義 |s|s 的長度。

字串 t 為字串 s 的子序列若存在一個序列 a1,a2,,a|t| 滿足 1a1<a2<<a|t||s|ti=sai1i|t|

字串 s 為回文字串若 si=s|s|+1i1i|s|

以下為提供的解法,請構造出一筆滿足題目條件的測資讓該程式碼 WA。

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    int n, m;
    string s, t;
    cin >> n >> m >> s >> t;
    string revs(s.rbegin(), s.rend()), revt(t.rbegin(), t.rend());

    s = "$" + s;
    revs = "$" + revs;
    t = "$" + t;
    revt = "$" + revt;

    vector dp(n + 1, vector (n + 1, vector (m + 1, vector <int>(m + 1, 0))));
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j) {
            for (int k = 1; k <= m; ++k) {
                for (int l = 1; l <= m; ++l) {
                    if (s[i] == revs[j] && s[i] == t[k] && s[i] == revt[l]) {
                        dp[i][j][k][l] = dp[i - 1][j - 1][k - 1][l - 1] + 1;
                    } else {
                        dp[i][j][k][l] = max({dp[i - 1][j][k][l], 
                                              dp[i][j - 1][k][l],
                                              dp[i][j][k - 1][l],
                                              dp[i][j][k][l - 1]});
                    }
                }
            }
        }
    }

    cout << dp[n][n][m][m] << '\n';
}

順帶一提,在 PreExam 中共有 10 個人寫過這個解,而出題者也寫過 QQ。

Input Format

輸入第一行有兩個正整數 N,M,代表字串 a 與字串 b 的長度。
輸入第二行有一個長度為 N 且僅由小寫英文字母組成的字串 a
輸入第三行有一個長度為 M 且僅由小寫英文字母組成的字串 b

  • 1N,M80
  • |a|=N,|b|=M
  • a,b 的每個字元皆為小寫英文字母

Output Format

請輸出一行,上面有一個整數代表字串 c 的長度

Sample Input 1

8 8
acbcabaa
aabbccba

Sample Output 1

5

Sample Input 2

14 8
ioicampisgreat
wiwihorz

Sample Output 2

2

Sample Input 3

7 7
rotator
rotator

Sample Output 3

7

Hints

以下程式碼能產生本題合法但一定不會讓你得到 AC 的測試資料:

#include <stdio.h>
int main() {
    puts("3 4");
    puts("ioi");
    puts("camp");
}

Problem Source

IOICamp 2024 Day1 pT

Subtasks

No. Testdata Range Constraints Score
1 0 無額外限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 65536 1