专项测试-数学

解方程

不是很难,然而不会扩展卢卡斯,当场 GG 。。
简单容斥,甚至 oi-wiki 上都有的经典例题。。。
在此不加赘述。。。。
这道题的存在是用来提醒某个 sb 要熟悉板子的。。。。。

宇宙序列

不难发现 \(FWT\) 变换后的式子是具有交换律和结合律的。
于是相当于对 \(a\)\(FWT\) 变换后,求出 \(b_i = \sum_{j = 0}^p a_i^{2^j}\) 即可。
由于模数比较小,于是可以对每个数倍增。
考场上板子写挂了。。。当场 GG 。。
这道题的存在是用来提醒某个 sb 要熟悉板子的。。。。。

Simple

此题的难点在于问题的转化。
题目要求的是长度为 \(n\) 的数中,有多少个数的所有真后缀字典序严格大于这个数。
此时有一个巧妙的转化,不难发现一个数如果有循环节,那么这个数一定不满足条件,否则这个数只有在最小表示时满足条件,因此只要求出有多少个长度为 \(n\) 的数中,有多少个数没有循环节即可,答案就是没有循环节的数的数量除以 \(n\) ,因为每个数只在被最小表示发表示时满足,因此一个合法的数会被算 \(n\) 次。

于是就变成了莫比乌斯反演的经典例题,不妨设 \(g_n\) 表示长度为 \(n\) 的所有数的数量, \(f_n\) 为长度为 \(n\) 的没有循环节的数的数量,则显然有:

\[g_n = 10^n \]

\[g_n = \sum_{d | n} f_n \]

大力莫反一发有:

\[f_n = \sum_{d | n} \mu(d) g(\frac{n}{d}) \]

则最终答案为:

\[ans = \sum_{i = 1}^n i f(i) \]

\[= \sum_{i = 1}^n i \sum_{d | i} \mu(d) 10^{\frac{i}{d}} \]

\[= \sum_{d = 1}^n \mu(d) \sum_{d | i}^n i 10^{\frac{i}{d}} \]

\[= \sum_{d = 1}^n \mu(d) d \sum_{i = 1}^{\lfloor \frac{n}{d} \rfloor} i 10^i \]

等差乘等比可以错位相减 \(O(1)\) 求和,于是可以杜教筛加整除分块解决此题。
\(\mu(d) d\) 卷上一个 \(id\) 便可以用杜教筛求前缀和。

猜拳游戏

巧妙的 \(dp\)

设 YCX 的妹妹为 A,YCX 为 B

每一轮之间是相互独立的,不难想到先求出单独一轮 A 的最大胜率,这样较优。
于是设 A 的胜率为 \(q\) ,B 的胜率为 \(r\)
然而不难发现此时 \(q + r\) 不一定等于 \(1\) ,因为可能有平局,平局对结果无影响,所以实际上 A 的胜率应该为 \(Q = \frac{q}{q + r}\) ,此时希望 \(\frac{q}{q+r}\) 最大,而不是 \(q\) 最大,发现很难直接计算,不难发现这是一个分数的形式,因此可以分数规划。

直接求 \(\frac{q}{q+r}\) 不好计算,不难发现 \(\frac{q}{q + r}\) 最大时, \(\frac{q}{r}\) 也是最大的,于是考虑求 \(\frac{q}{r}\) 的最大值。
每次二分一个 \(k\) ,考虑如何检验,若 \(k \le \frac{q}{r}\) ,则 \(q - rk \ge 0\) ,于是 \(dp\) 求出 \(q - rk\) 的最大指即可。
这个 \(dp\) 比较巧妙,可以理解成若 A 这一轮赢可以得到 \(1\) 的分数,而若 B 这一轮赢 A 需要付出 \(k\) 的分数,\(q,r\) 分别是 A 赢或输这一轮的概率,则 \(q -rk\) 就相当于是最优策略下的最大期望得分,于是倒着 \(dp\) 一遍,每次枚举当前出石头剪刀布,取最大值即可。
个人认为 \(dp\) 的状态比较显然,设 \(f_{i,j}\) 表示当前 \(dp\) 到底 \(i\) 局,A 比 B 多赢 \(j\) 场的最大值即可(j可以为负)。

求得赢一轮的期望后,考虑如何求 A 最终赢的概率,状态设计同上,设 \(f_i\) 表示 A 比 B 多赢 \(i\) 场的概率,则:

\[f_i = f_{i - 1} + f_{i + 1}, f_{m1} = 1 \]

不难发现转移会成环,于是高斯消元即可。

传统题

一道比较神奇的题。。。
考虑若现在有一个序列,我们将其中相邻两个颜色一样的点合并成一个块,设块的数量为 \(i\) ,最大的块的小于等于 \(j\) ,记所有这样的块的数量为 \(g_{i,j}\) ,这样便有一个 \(O(n^2)\)\(dp\) 然而我并不会。。。

\(f_i\) 表示最大块长小于等于 \(i\) 的序列数量,不难发现最终的答案就是 \(\sum_{i = 1}^n m^n - f_{i - 1}\) ,考虑如何快速求出 \(\sum_{i = 0}^{n-1} f_{i}\) ,若将序列分成 \(j\) 个块,每相邻两个块之间颜色不同,则有 \(f_{i} = \sum_{j = 1}^n m (m - 1)^{j-1} g_{j, i}\) ,而后面的式子是一个经典的容斥:

\[g_{j, i} = \sum_{k = 0}^j (-1)^{k} \binom{j}{k} \binom{n - ik - 1}{j - 1} \]

则:

\[ans = \sum_{i = 0}^{n - 1} m^n - \sum_{j = 1}^n m(m-1)^{j-1} \sum_{k = 0}^j (-1)^k \binom{j}{k} \binom{n - ik - 1}{j - 1} \]

感觉许多的推导有些假,逻辑关系不是很强,还未完全理解。
毕竟没有什么明显的套路或组合意义,只凭式子的美丑来决定下一步做什么太牵强了,先咕掉了,等完全理解了再来补吧(理解不了就把暴力贴了。。。)

记下最终答案:

\[ans = n m^n - m \sum_{i = 0}^{n - 1} \sum_{k = 0}^{\lfloor \frac{n}{i} \rfloor} (-1)^k \binom{n - ik}{k} \frac{1}{n - k + 1}(k(m - 1)^k m^{n - ik -k} + (n - ik - k) (m - 1)^k m^{n - ik - k - 1}) \]

生成树

考察了对于矩阵树定理的理解以及瞎胡构造的能力。

想了半天容斥,但是数据范围显然不能容斥。。。
矩阵树定理求得的是所有生成数的边权的积的和,即 \(\sum_{T \subseteq G} \prod_{e \in T} w_e\)
因此,若将绿色和蓝色的边分别赋一个权值 \(x, y\) ,则求出得就是 \(\sum_{T \subseteq G} r_{i,j} x^i y^j\) ,这是一个二维多项式,最终要求的就是 \(\sum r_{i,j}\) ,高斯消元即可。

young

神仙 dp ,暂咕。。。

exp

神仙 dp,暂咕。。。

Summary

数学确实学的不是很好。。。
考试的时候总是很混乱,时常能想到一些 tips ,然而思维不成体系(有时一些显然的东西看不见),无法将其联系在一起,导致有时最终分数还没有暴力高。。。
有时贪一些高分,而不去写暴力,最后几分钟还没写出正解才开始慌,然而往往已经来不及写暴力了。。。
也已经接触过不少神仙 \(dp\) 了,然而考场上看到还是完全没有思路,总得颓题解。。。
板子不熟悉。。。掉大分了。。。
还是做的题少,大力计数吧。。。

posted @ 2022-01-07 21:23  Cyber_Tree  阅读(61)  评论(2编辑  收藏  举报