@[樱初音斗橡皮](/user/66287) 抱歉我要睡觉了...太弱了没能帮到您
by 蒟蒻365 @ 2019-11-25 00:01:33
```cpp
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=2005;
const int mod=1e9+7;
char s[N];
int fac[N],use[26];
int dfs(int l,int r){
if(l==r){
for(int i=0;i<26;++i){
if(use[i]==1)return 1;
}
return 0;
}
if(l>r)return 1;
int ans=0;
for(int i=0;i<26;++i){
if(use[i]>=2){
int t=use[i];
use[i]-=2;
ans+=(fac[t]/fac[t-2])*dfs(l+1,r-1)%mod;
ans%=mod;
use[i]+=2;
}
}
return ans;
}
int main(){
#ifdef LOCAL
freopen("..\\in","r",stdin),freopen("..\\out","w",stdout);
#endif
int n,pp=1;
scanf("%d%s",&n,s);
fac[0]=1;
for(int i=0;s[i];++i){
++use[s[i]-'a'];
fac[i+1]=fac[i]*(i+1)%mod;
}
printf("%d\n",fac[n]-dfs(0,n-1));
return 0;
}
```
我太倒霉了,刚写完这题,这题炸了。。。都没法提交
by hly1204 @ 2019-11-25 00:17:03
~~大佬有空的话帮忙看看我的对吗~~
by hly1204 @ 2019-11-25 00:17:29
原来这题之前的数据炸了emm,此题终结
by 樱初音斗橡皮 @ 2019-11-25 06:50:04