1 条题解

  • 0
    @ 2024-12-2 11:16:33
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N = 1e6 + 10, INF = 0x3f3f3f3f, MOD = 1E9 + 7;
    int n;
    string s;
    bool st[N];
    map<string, int> mp;
    void dfs(int u, string str) {
        if (u >= n) {
            if (mp.count(str))
                return;
            mp[str] = 1;
            cout << str << endl;
            return;
        }
        for (int i = 0; i < n; i++) {
            if (!st[i]) {
                st[i] = 1, dfs(u + 1, str + s[i]);
                st[i] = 0;
            }
        }
    }
    
    int main(int argc, char* argv[]) {
        cin >> n >> s;
        sort(s.begin(), s.end());
        dfs(0, "");
        cout << mp.size() << endl;
        return 0;
    }
    
    
    • 1

    信息

    ID
    520
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    101
    已通过
    78
    上传者