```
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;
int n,a[26];
string s;
int res=1,dp[2005];
int power(int x,int y){
int ans=1;
while(y){
if(y&1) ans=ans*x%mod;
x=x*x%mod;
y>>=1;
}
return ans%mod;
}
signed main(){
cin>>n;
dp[0]=1;
for(int i=1;i<=n;i++){
dp[i]=dp[i-1]*i%mod;
}
cin>>s;
for(int i=0;i<(int)s.length();i++){
a[s[i]-'a']++;
}
int k=0;
for(int i=0;i<26;i++){
if(a[i]%2==1){
k++;
}
}
if(k>1){
cout<<dp[n]<<endl;
return 0;
}
k=0;
for(int i=0;i<26;i++){
if(a[i]%2==1){
k=a[i];
break;
}
}
for(int i=0;i<26;i++){
res*=dp[a[i]]*power(dp[a[i]/2],mod-2)%mod;
res%=mod;
}
res=res*dp[n/2]%mod;
cout<<((dp[n]-res)%mod+mod)%mod<<endl;
return 0;
}
```
@[WholeCity](/user/550471)
by huangmingyi @ 2023-11-28 17:58:16