数学专题 1

数学专题 1

  1. 梦现时刻

    生成函数简单题。

    发现这个异或没有性质,所以一定是求出所有的 \(F(a, b)\)

    考虑如何做,我们写出其一行的生成函数:

    \[\begin{aligned} \cal F_b &= \sum_a x^a \sum_i^b \dbinom bi \dbinom {n - i}a \\ &= \sum_i^b \dbinom bi \sum_a \dbinom {n - i}a x^a \\ &= \sum_i^b \dbinom bi (1 + x)^{n - i} \\ &= (1 + x) ^ n\sum_i^b \dbinom bi (1 + x)^{-i} \\ &= (1 + x) ^ n (1 + (1 + x)^{-1})^b \\ &= (1 + x) ^ {n - b} (2 + x)^b \\ \end{aligned}\]

    考虑如何提取其一行的系数,考虑递推,设 \(f_i = [x^i]\cal F_b\) 我们发现:

    \[(1 + x)(2 + x)\frac{\rm d}{\rm dx} \cal F_b = F_b(2n - b + nx) \]

    于是有:

    \[2(i + 1)f_{i + 1} + 3if_t + (t - 1)f_{t - 1} = nf_{t - 1} + (2n - b)f_t \]

    然后就可以递推了,这个方法还是通用的。

  2. Swaps

    容易想到连边,然后就是分讨一下环和链,实现难度在基环树找环。

  3. Partial Virtual Trees

    首先转化成讲每个节点打一个删除时间的 tag \(p_u\),这样可以轻松刻画第二个限制,即 \(\sum_{v \in son_u}[p_v > p_u] \le 1\)

    对于第一个限制,我们容斥一下即可。

    这是非常好 dp 的,枚举 \(v \text{ s.t. } p_v > p_u\) 即可,前缀优化即可 \(\cal O(n ^ 2)\)

    注意到 dp 值不一定有逆元,所以有一步要写成前后缀积。

  4. 冒泡排序

    type 1 很简单的。

    type2 考虑到每次相当于是前缀最大值不会操作,其余会操作。这启发我们建笛卡尔树。

    先钦定最大值在最后,一会再考虑位移。这样不能操作的部分显然是根的左链长度。

    考虑位移,首先位移过去的点显然是必然操作,然后相当于是将其右儿子替换它,这样原本的根的左链长度就变成了走向一个节点的最长左走步数。

    然后就是简单 dp 了。

  5. Basis

    首先你得会一个正常人类都会的莫反:

    \[f(n) = \sum_{d | n} g(d) \iff g(n) = \sum_{d | n} \mu(\frac nd) f(d) \]

    \[f(n) = \sum_{n | d} g(d) \iff g(n) = \sum_{n | d} \mu(\frac dn) f(d) \]

    考虑只有 \(G\) 怎么做,发现其相当于是颜色无关,只和下标有关,可以看成 \(n\) 个球放到 \(m\) 个盒子中,盒子不区分,就是第二类斯特林数。

    当然也可以先写个 \(dp\) 然后一眼看穿,于是我们可以 \(n\log n\) 求一行。

    考虑加上 \(F\),则多一个每个连续段的 \(\gcd = 1\),考虑莫反,设 \(f(x)\) 表示连续段 \(\gcd\)\(x\) 的倍数的方案数,然后就做完了。

  6. Stairs

    简单题。

    首先显然可以还原出每个连续段。

    然后直接容斥,问题变成将原有的连续段划分成 \(k\) 个连续段的方案,直接 dp 上前缀和优化是 \(n ^ 2\) 的。

    我们发现 dp 的转移十分简单,于是直接将转移的生成函数写成矩阵,跑分治 NTT 即可。

  7. Test Data Generation

    倍增 FFT 板子,思考没难度。

    枚举一个 \(2 ^ k\),将所有数除掉 \(2 ^ k\) 使 \(a_n\) 是奇数即可。

  8. Jellyfish and OEIS

    学习 特化析合树

    然后写个区间 dp 限制一下限制就做完了。

  9. Construct a Matrix

    简单题。

    首先将 \(0\) 去掉,然后发现 \(\times 1\) 不变,\(\times 2\) 相当于是改变奇偶性,相当于是异或。

    写个高消,二维前缀和优化即可。

  10. Stranger Trees

    直接容斥,连通块间的方案数是很简单的,于是问题就是划分联通块。

    直接 dp 即可 \(n ^ 3\),但是我们发现连通块大小 \(a\) 的系数是 \(\prod a\),这样可以用一个 trick 就是将系数看成在每个连通块中选一个点,记录是否选择即可 \(n^2\)

    当然用 matrix-tree 加站位元可以直接做到 \(n ^ 4\)

剩下两个是 LGV 题,直接看 鲜花 即可。

posted @ 2025-07-18 12:03  xrlong  阅读(46)  评论(1)    收藏  举报

Loading