1 条题解
-
0
自动搬运
来自洛谷,原作者为

zhoukangyang
^w^/搬运于
2025-08-24 22:14:44,当前版本为作者最后更新于2021-08-28 20:06:10,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
大家的做法都用了拉反,给个不用拉反的做法。
考虑容斥:钦定边集 ,满足 中的边都是割边。
最终的图一定是若干个联通块由 中的边连成的。若把联通块看做点,那么最终的图就是一颗树。
直接做不好做,因此更换枚举顺序。先枚举连通块(设大小分别为 ),再枚举 。根据一个经典结论,取 的方案数是 。带上容斥系数就是 。
设有标号连通图的 为 。那么设 满足 ,答案就是 。
核心代码:
cin >> n; poly F (n + 1); F[0] = 1; L(i, 1, n) F[i] = (ll) F[i - 1] * qpow (2, i - 1) % mod * inv[i] % mod; F = F.Ln(); L(i, 1, n) F[i] = mod - (ll) F[i] * i % mod * n % mod; F = F.Exp(); cout << (ll) (mod - F[n]) * inv[n] % mod * fac[n - 1] % mod << "\n";
- 1
信息
- ID
- 4828
- 时间
- 4000ms
- 内存
- 500MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者