期望概率训练
[CEOI2017] Chase
如果根固定,节点的价值即为儿子铁球数量之和
令dp[i][j]为在i为根的树里选择j个点的最大值,son[i]为儿子,sm[i]为儿子的铁球数量和
dp[i][j]=max(dp[son[i]][j],dp[son[i]][j-1]+sm[i])
此时还要枚举根,复杂度O(n*n*sm)
考虑优化
dp[i][j][0/1]为从i走到i的子树,i选不选,选了j个的最大值
g[i][j][0/1]为从i的子树走到i,i选不选,选了j个的最大值
那么可得到转移式
dp[i][j][0]=max(dp[son][j][0],dp[son][j][1])
dp[u][j][1]=max(dp[son][j-1][0],dp[son][j-1][1])+sm
g[u][j][0]=max(g[son][j][0],g[son][j][1])
g[u][j][1]=max(g[son][j-1][0],g[son][j-1][1])+sm+p[fa]-p[son]
复杂度O(n*v)
CF1540B Tree Array
利用期望的线性
算出每一个逆序对的概率,求和为期望
考虑怎么计算一个逆序对的概率
定义dp[i][j]为距离a为i b为j的概率
dp[i][j]=(dp[i-1][j]+f[i][j-1])/2
CF601C Kleofáš and the n-thlon
dp[i][j]为到第i场,有j分的期望
dp[i][j]=1/(m-1)* (\sum dp[i-1][j-k])
ans=(m-1)*(\sum dp[n][i]+1)
用前缀和简单优化一下