蒟蒻求助,70分
查看原帖
蒟蒻求助,70分
291706
Unordered_OIer楼主2021/6/25 21:31
#include<bits/stdc++.h>
#define P 1000000007
using namespace std;
typedef long long ll;
ll n,c[30];string s;
inline ll mod(ll x){return (x%P+P)%P;}
inline ll modfac(ll x){
	ll res=1;
	for(ll i=2;i<=x;i++)
		res=mod(res*i);
	return res;
}
inline ll modfdiv(ll x1,ll x2){
	ll res=1;
	for(ll i=x2+1;i<=x1;i++)
		res=mod(res*i);
	return res;
}
int main(){
	scanf("%lld",&n);
	cin>>s;
	for(ll i=0;i<n;i++)c[s[i]-'a'+1]++;
	ll f1=modfac(ceil(n/2.0)),f2=1,f3=1;
	ll cc=0;
	for(ll i=1;i<=26;i++)
		if(c[i]%2==0)f2=mod(mod(f2)*modfdiv(c[i],c[i]/2+1));
		else f3=c[i],cc++;
	if(cc>1)return printf("%lld\n",modfac(n)),0;
	ll ans=mod(modfac(n)-mod(mod(f1*f2)*f3));
	printf("%lld\n",ans);
	return 0;
}

WA on #3,#6,#7,不知道哪里错了(

求大佬帮忙调一调qwq

2021/6/25 21:31
加载中...