【习题选讲】数学2

Flowers and Chocolate


生成函数题,好想做出来啊,,杠了一天半了,只能咕咕

加权约数和


咕咕
题解

概率好题


求 sum{a_i} < sum{b_i} 的方案数,其中 a_i 和 b_i 有取值范围

考虑到 a_i 和 b_i 有一个下限 l,将柿子化为 sum{l_i + x_i} < sum{l_i + x_i} 的形式,其中 0 <= x_i <= r_i

隔板法 + 容斥即可

小Q的集合


看到 n 这么大,模数却只有 1e6 应该想到 lucas 定理啊

m 又是质数,(T^k - (S - T)^k) % m 成一个周期为 m 的数列

然后一发乱搞就好了(

BBQ Hard


C(Ai + Aj + Bi + Bj, Ai + Aj) 就是求从 (0, 0) 走到 (Ai + Aj, Bi + Bj) 的方案数

移位,变成求从 (-Ai, -Bi) 走到 (Aj, Bj) 的方案数

那么对于每个点,我们计算从它左下区域走上来的方案数之和

显然 dp[i, j] = dp[i - 1, j] + dp[i, j - 1]。坐标值都很小,可以枚举。最后别忘了减去 (-Ai, -Bi) 对 (Ai, Bi) 的贡献。

Leftmost Ball


转化一下就是求已放白球数 >= 已放彩球种类的方案数,容易想到每放一种颜色就把 K 个全放完的想法。

其实真正重要的只有那 n 个白球和那 n 个第一次放下的彩球。dp,f[i, j] 表示已放 i 白球,j 种彩球的方案数。

Card game for three


并不是很难的题,第一步想懂了后面就好办了。

将 a、b、c 的赢看作又抽了一张卡,即 b 抽了第 m + 1 张,c 抽了第 k + 1 张,而 a 抽了第 n 张(a 先手)枚举 a 赢之前 b 和 c 各抽了几张卡,化柿子 + 分类讨论即可。

Unicyclic Graph Counting


prufer序列重修

度数建图,容易想到 prufer 序列,但这是基环树。

定义本题的 prufer 序列为将树删完后的 prufer 序列,只剩下一个环 和连着环的编号最大的点。

想到树上节点在 prufer 序列中出现次数为 deg - 1,环上只有一个节点出现次数为 deg - 3,其他都是 deg - 2(特判只有一个环的情况)。

环大小为 k 时,环排列数为 (k - 1)! / 2(环有旋转同构和翻转同构),prufer 序列数为 (n - k + 1)! / prod{ (di - ?)! }

dp计算分母那玩意,f[i, j, k] 表示前 i 个点有 j 个环上点,k 为 0/1 表示是否选了出现次数 deg - 3 的点。

所以最后答案就是 $\sum\limits_{i = 3}^{n - 1} f[n, i, 1] \times (n - i - 1)! \times \frac{(i - 1)!}{2}$

Team Work


第二类斯特林数

柿子很好列出来,怎么推呢?

  • 看到 i^k 的形式想想斯特林数
  • 循环复杂度高时想想替换枚举顺序
  • 碰到阶乘形式想想凑组合数

排列组合


指数型生成函数模板题,回去就重修生成函数。