首页 技术 正文
技术 2022年11月21日
0 收藏 767 点赞 4,459 浏览 1182 个字

传送门

果然只有我这种菜鸡才会用这种菜鸡做法QwQ

对于一类要求期望的题目,有一个无脑的做法:

设概率为 \(f\),期望为 \(g\)

每次合并两个二元组 \(<f_1,g_1>,<f_2,g_2>\) 的方法显然为 \(<f_1\times f_2,g_1\times f_2+f_1\times g_2>\)

对于这一道题,设 \(i\) 个点的树的方案数 \(f_i\),到根的距离和为 \(g_i\),距离总合 \(h_i\)

显然 \(f_i=i!\)

(我TM写了个这个东西\(f[0]=f[1]=1,f[i]=\sum f[j-1]f[i-j]\binom{i-1}{j-1}\)结果发现我是zz)

\(g_i\) 的合并要将左右的树的 \(g\) 分别加上 \(1\)

\(h_i\) 的合并要将左右的树的 \(g\) 分别加上 \(1\) 然后拼起来再加上左右的 \(h\)

最后 \(h_i\) 还要算上 \(g_i\)

# include <bits/stdc++.h>
using namespace std;
typedef long long ll;const int maxn(2005);int n, mod, c[maxn][maxn], f[maxn], g[maxn], h[maxn];inline void Inc(int &x, const int y) {
x = x + y >= mod ? x + y - mod : x + y;
}inline int Add(const int x, const int y) {
return x + y >= mod ? x + y - mod : x + y;
}int main() {
int i, j, tmp1, tmp2;
scanf("%d%d", &n, &mod), f[0] = f[1] = c[0][0] = 1;
for (i = 2; i <= n; ++i) f[i] = (ll)f[i - 1] * i % mod;
for (i = 1; i <= n; ++i)
for (c[i][0] = j = 1; j <= i; ++j) c[i][j] = Add(c[i - 1][j - 1], c[i - 1][j]);
for (i = 2; i <= n; ++i) {
for (j = 1; j <= i; ++j) {
Inc(g[i], tmp1 = (ll)Add((ll)f[i - j] * (i - j) % mod, g[i - j]) * c[i - 1][j - 1] % mod * f[j - 1] % mod);
Inc(g[i], tmp2 = (ll)Add((ll)f[j - 1] * (j - 1) % mod, g[j - 1]) * c[i - 1][j - 1] % mod * f[i - j] % mod);
Inc(h[i], (ll)Add((ll)h[i - j] * f[j - 1] % mod, (ll)h[j - 1] * f[i - j] % mod) * c[i - 1][j - 1] % mod);
Inc(h[i], Add((ll)tmp1 * (j - 1) % mod, (ll)tmp2 * (i - j) % mod));
}
Inc(h[i], g[i]);
}
printf("%d\n", h[n]);
return 0;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,812
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,894