2021牛客暑期多校训练营4 题解
A
考虑树上每个子树维护一个生成函数
每个课的生成函数是\(\frac{1}{1-p_i*x}\)
然后要求子树学分超过多少这个限制考虑直接求出前若干项然后分子减去这样一个多项式。
就这样大力维护就可了
B
大力概率生成函数推导一下
然后由于生成函数是一个无穷级数求和,直接写成求和形式后维护分母的乘积。
最后大力求二阶导计算答案即可。
C
D
需要知道这样一个结论
证明
因此只需把树分成\(k+1\)个连通块,同时每个连通块乘上一个\(sz\)作为贡献。
这个过程可以简单\(dp\)解决。
E
考虑设\(1\)号点的权值为\(x\)
那么其它所有点的权值则可以得到确定。
且每个点的区间限制都会为\(x\)添加一个形如\(l_i \ge x^w_i \le r_i\)的限制
这个限制容易发现是\(trie\)树上的\(logn\)个子树
维护一下即可。
F
签到题
G
这是一个类似背包的问题。
我们考虑写出每个物品的生成函数。
\[\begin{align*}
f(x)&=\sum_{i=0}^{\infin} \frac{1}{(i+k)!}*x^i
\\
&=\sum_{i=k}^{\infin} \frac{1}{i!}*x^i
\\
&=e^x-\sum_{i=0}^{k-1} \frac{1}{i!}*x^i
&=e^x+g(x)
\end{align*}
\]
然后我们需要计算的便是\(f^n(x)\)
我们考虑对其进行二项式展开
\[\begin{align*}
(e^x+g(x))^n$=\sum_{i=0}^n C(n,i)*g^i(x)*e^{(n-i)*x}
\end{align*}
\]
我们考虑\(e^{kx}\)的\(i\)次项系数怎么计算
这个这个很显然就是\(\frac{i^k}{i!}\)
因此我们暴力做多项式卷积,然后求和即可。
H
I
签到题
J
推一下式子即可发现答案就是两个序列的均值最大子段和相加,分数规划即可。