比赛 国庆欢乐赛2 评测结果 WWWWWWWWTTTTTTTTTTTT
题目名称 排列 最终得分 0
用户昵称 李奇文 运行时间 24.000 s
代码语言 C++ 内存使用 3.50 MiB
提交时间 2025-10-04 11:38:59
显示代码纯文本
#include<bits/stdc++.h>

using namespace std;
const int N=4e6+5;
int n,ans;
string s;
int f[N],cnt;
void dfs(string c){
    if(c==s){
        return;
    }else{
        int sum=0;
        for(int i=1;i<=n;i++){
            sum+=pow((n+1),i)*(s[i]-'0');
        }
        f[++cnt]=sum;
    }
    for(int i=1;i<n;i++){
        for(int j=i+1;j<=n;j++){
            if(s[i]>s[j]){
                swap(s[i],s[j]);
                dfs(s);
            }
        }
    }
}
int main(){
    freopen("changgao_perm.in","r",stdin);
    freopen("changgao_perm.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>s[i];
    }
    dfs(s);
    sort(f+1,f+1+cnt);
    for(int i=1;i<=n;i++){
        if(f[i]!=f[i-1]) ans++;
    }
    cout<<ans+1<<"\n";
    return 0;
}