题解:P14364 [CSP-S 2025] 员工招聘 / employ(民间数据)
讲一下 jiangly 的做法。
我们假设已经钦定好了每天的人是否录取,设
考察第
-
-
- 录取,要求 $c>x_i$。 - 不录取,要求 $c\le x_i$。
这个
设
::::info[Code 已过民间数据]
int n, m;
char s[N];
int a[N];
Z f[N][N][N];
Z fac[N], inv[N];
void mslv() {
rd(n, m), rd(s + 1);
rep(i, 1, n) a[r32]++;
rep(i, 1, n) a[i] += a[i - 1];
f[0][0][0] = 1;
req(i, 0, n) {
if (s[i + 1] == '0') rep(j, 0, i) rep(k, 0, i)
f[i + 1][j + 1][k] += f[i][j][k];
else rep(j, 0, i) rep(k, 0, i) {
f[i + 1][j][k] += f[i][j][k];
Z x = a[j] - k;
f[i + 1][j][k + 1] -= x * f[i][j][k];
f[i + 1][j + 1][k + 1] += x * f[i][j][k];
}
} Z ans;
rep(j, 0, n - m) rep(k, 0, n) ans += f[n][j][k] * fac[n - k];
prs(ans);
}
::::