MnZn 刚学 OI,本地能过提交 RE
查看原帖
MnZn 刚学 OI,本地能过提交 RE
189351
wheneveright楼主2022/9/8 20:35

评测记录

代码

# include <bits/stdc++.h>
# define int long long
# define wheneveright signed main
using namespace std;

const int maxn = 5005;
const int mod = 1000000007;

int KSM (int x, int y = mod - 2) {
	int ret = 1;
	while (y) {
		if (y & 1) ret = ret * x % mod;
		x = x * x % mod; y >>= 1;
	}
	return ret % mod;
}

int n, res, odd;
int fac[maxn], inv[maxn];
char s[maxn];
int cnt[27];

wheneveright () {
	scanf ("%lld%s", & n, s + 1); fac[0] = inv[0] = 1;
	for (int i = 1; i <= n; i++) inv[i] = KSM (fac[i] = fac[i - 1] * i % mod);
	for (char i : s) cnt[i - 'a']++;
	for (int i = 0; i < 26; i++) odd += cnt[i] & 1;
	if (odd > 1) return printf ("%lld\n", fac[n] % mod); odd = 1;
	for (int i = 0; i < 26; i++) if (cnt[i] & 1) odd = cnt[i]; res = fac[n / 2] * odd % mod;
	for (int i = 0; i < 26; i++) res = res * fac[cnt[i]] % mod * inv[cnt[i] / 2] % mod;
	res = fac[n] - res;
	printf ("%lld\n", (res % mod + mod) % mod);
	return 0;
}

测试点2输入输出:

8
aabbcdee
40320

在本地是可以输出且不 RE 的,不知道为什么交上去就大红大紫,路过的大佬帮帮这个普及组的蒟蒻吧/ll/ll/ll

2022/9/8 20:35
加载中...