RT,做法是先从 11 开始,找另外字符串(未访问过)的最大公共前缀的最大值,然后递归并输出

int f(string s1, string s2) {//最大公共前缀
    int ret = 0;
    for (int i = 0; i < min(s1.size(), s2.size()); ++i) {
        if (s1[i] == s2[i]) ++ret;
        else return ret;
    }
}

string s[9961];

void NTT(int p) {
    int mx = -0x3f3f3f3f, w = 0;
    cout << s[p] << '\n';
    vis[p] = 1;
    for (int i = 1; i <= n; ++i) {
        int toptree = f(s[p], s[i]);
        if (toptree > mx && !vis[i]) {
            mx = toptree;
            w = i;
        } 
    }
    if (w) NTT(w);
}

3 条评论

  • @ 2023-1-22 18:43:19

    此贴结

    • @ 2023-1-22 17:47:31

      哦,ff 求错了/jk

      • @ 2023-1-22 17:42:08

        我 Hack 我自己:

        12
        light
        trolls
        lightning
        legendary
        luogu
        pearl
        mythic
        lighting
        chtholly
        leprechauns
        ultra
        super
        
        • 1