社区讨论
始终20pts求调,改了好几个思路了
P5684[CSP-J 2019 江西] 非回文串参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lw33zdxo
- 此快照首次捕获于
- 2024/05/12 13:42 2 年前
- 此快照最后确认于
- 2024/05/12 16:18 2 年前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;
int jc(int x){
int tmp=1;
for(int i=1;i<=x;i++)
tmp=(tmp*i)%mod;
return tmp;
}
int omg(int x){
int tmp=1;
for(int i=x/2+1;i<=x;i++)
tmp=(tmp*i)%mod;
return tmp;
}
char x;
int n,a[30],cnt,sum;
signed main(){
ios::sync_with_stdio(0);
cin.tie(nullptr);cout.tie(nullptr);
cin>>n;sum=jc(n);
for(int i=1;i<=n;i++){
cin>>x;
a[x-'a']++;
}
for(int i=0;i<26;i++)
cnt+=a[i]%2;
if(cnt>1)
cout<<sum;
else{
int tmp;
for(int i=0;i<26;i++)
tmp=(tmp*omg(a[i]))%mod;
tmp=(tmp*jc(n/2))%mod;
cout<<(sum-tmp+mod)%mod;
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...