求助,我感觉没什么问题,为什么样例guobuliao
查看原帖
求助,我感觉没什么问题,为什么样例guobuliao
847663
hcx0604楼主2023/7/24 10:29

#include <bits/stdc++.h>

using namespace std;

int n, t;
char head;
vector<string> arr(25);

void dfs(int len, unordered_map<string, int> Hash, int idx) {
    if (len > t) {
        t = len;
    }
    int n = arr[idx].size();
    for (int i = 0; i < n; ++ i) {
        if (Hash[arr[i]] < 2) {
            int m = arr[i].length();
            for (int j = n - 1; j > 0; -- j) {
                if (arr[idx].substr(j, n - j) == arr[i].substr(0, n - j)) {
                    ++ Hash[arr[i]];
                    dfs(len + m - n + j, Hash, i);
                    -- Hash[arr[i]];
                }
            }
        }
    }
    // at touch cheat tact tact touch choose
    // at touch cheat tact touch cheat tact
}

int main()
{
    cin >> n;
    for (int i = 0; i < n; ++ i) cin >> arr[i];
    cin >> head;
    unordered_map<string, int> Hash;
    for (int i = 0; i < n; ++ i) if (arr[i][0] == head) {
            ++ Hash[arr[i]];
            dfs(arr[i].length(), Hash, i);
            -- Hash[arr[i]];
        }
    cout << t << endl;
    return 0;
}

2023/7/24 10:29
加载中...