专栏文章
题解:P14364 [CSP-S 2025] 员工招聘 / employ(民间数据)
P14364题解参与者 17已保存评论 30
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 30 条
- 当前快照
- 1 份
- 快照标识符
- @minf4nmh
- 此快照首次捕获于
- 2025/12/02 01:23 3 个月前
- 此快照最后确认于
- 2025/12/02 01:23 3 个月前
讲一下 jiangly 的做法。
我们假设已经钦定好了每天的人是否录取,设 表示前缀没录取的总人数。
考察第 天的情况:
- ,一定不录取,任意放人都可以。
- ,分讨是否录取:
- 录取,要求 。
- 不录取,要求 。
这个 有点烦,让我们把它容斥成「任意 」。
设 表示前 个人,拒绝了 个人,钦定了 个人的总方案,转移只需要根据前面算一下就好了,是 3d-0d 的。统计答案也是简单的,时间复杂度 。
Code 已过民间数据
CPPint 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);
}
相关推荐
评论
共 30 条评论,欢迎与作者交流。
正在加载评论...