一些和数学相关的有趣问题,简单和困难的都有。

The 3rd Universal Cup. Stage 13, K

题意简述:长度为 $n$ 的序列,每个元素在 $[0, m)$ 中随机,求序列期望 mex,对 998244353 取模。

期望转总和,然后算贡献。需要求 mex 不小于 $i$ 的方案数,即算 $[0, i)$ 中每个元素都出现的方案数,这里考虑容斥,即钦定 $k$ 个数不能出现。

$$ \begin{aligned} m^n\cdot \text{Ans} &= \sum_{i=1}^{m} \sum_{k=0}^{i}\binom{i}{k}(m-k)^n(-1)^k \\ &= \sum_{k=0}^{m}(-1)^k(m-k)^n\sum_{i=\max(1,k)}^m\binom{i}{k} \\ &= m^{n+1} + \sum_{k=1}^m(-1)^k(m-k)^n\binom{m+1}{k+1} \end{aligned} $$

注意到 $\binom{m+1}{k+1}(-1)^k$ 是类似二项式系数的形式,考虑把他们合到一起去。

我们有 $[\frac{x^n}{n!}]\exp(px)=p^n$,因此:

$$ \begin{aligned} m^n\cdot \text{Ans} &= m^{n+1} \red{-} \sum_{i=1}^m (-1)^{\red{i+1}}([\frac{x^n}{n!}]e^{(m-i)x})\binom{m+1}{i+1} \\ &= [\frac{x^n}{n!}](m^{n+1} - \sum_{i=1}^m (-1)^{i+1}(e^{((m+1)-(i+1))x})\binom{m+1}{i+1}) \\ &= [\frac{x^n}{n!}](m^{n+1} - \sum_{i=0}^{m+1} (-1)^{i}(e^{(m+1-i)x})\binom{m+1}{i} - (m+1)e^{mx} + e^{(m+1)x}) \end{aligned} $$

逆用二项式定理得到:

$$ \begin{aligned} m^n\cdot \text{Ans} &= [\frac{x^n}{n!}](m^{n+1} - (e^x-1)^{m+1} - (m+1)e^{mx} + e^{(m+1)x}) \\ &= m^{n+1}-(m+1)m^n + (m+1)^n - \blue{[\frac{x^n}{n!}](e^x-1)^{m+1}} \end{aligned} $$

蓝色这个柿子咋打开呢?相信身经百战的你一定发现了这就是第二类斯特林数的生成函数:

$$ {n \brace k} = \frac{1}{k!}[\frac{x^n}{n!}](e^x-1)^k $$

因此有

$$ \text{Ans}=\frac{(m+1)!{n \brace m+1}+(m+1)^n}{m^n}-1 $$

$O(n^2)$ 递推即可。

Codeforces Round 979 (Div. 2), E

怎么又是 mex 题啊

这是一个重度魔怔做法。我们直接跳到最后一步,详细信息可以看我写的 sol

相当于有 $f(n,m)=\sum_{i=0}^{n-1}z^i\binom{i}{m}$,其中 $z$ 是一个不为 $1$ 的常数,我们需要求出某一行(即:$n$ 均相同)的值。

还是考虑拆组合数:

$$ \begin{aligned} f(n,m)&=\sum_{i=0}^{n-1}z^i[x^m](x+1)^i \\ &= [x^m]\sum_{i=0}^{n-1}z^i(x+1)^i \\ &= [x^m]\frac{1-(z(x+1))^n}{1-z(x+1)} \end{aligned} $$

多项式求逆即可 $O(m \log m)$ 求一行。

cxy 说可以找整式递推做到线性,先咕了。

upd: 会了。

不用啥高深的科技,我们直接考虑拆组合数。

$$ \begin{aligned} f(n,m)&=\sum_{i=0}^{n-1}z^i\binom{i}{m} \\ &= \sum_{i=0}^{n-1}z^i(\binom{i-1}{m-1}+\binom{i-1}{m}) \\ &= (z\sum_{i=0}^{n-1}z^i\binom{i}{m-1})+(z\sum_{i=0}^{n-1}z^i\binom{i}{m})-z^n(\binom{n-1}{m}+\binom{n-1}{m-1}) \\ &= z\cdot f(n, m-1)+z\cdot f(n,m)-z^n(\binom{n-1}{m}+\binom{n-1}{m-1}) \end{aligned} $$

又因为 $z\neq 1$,故有

$$ f(n,m)=\frac{z\cdot f(n,m-1)-z^n(\binom{n-1}{m}+\binom{n-1}{m-1})}{1-z} $$

$O(m)$ 递推即可。

U 群看到的题 (1)

“这个柿子有四种推法,你知道么?”

题意:证明 $\sum\limits_{i=1}^n\binom{n}{i}(-1)^{i-1}\frac{1}{i}=H_n$,即调和数第 $n$ 项。

法 1:组合意义

[TBD]

法 2:大力出奇迹

[TBD]

法 3:积分

这个 $\frac{1}{i}$ 看着就让人很不爽,考虑用积分代换掉!

$$ \begin{aligned} \sum\limits_{i=1}^n\binom{n}{i}(-1)^{i-1}\frac{1}{i} &= \sum_{i=1}^n\binom{n}{i}(-1)^{i-1}\int_0^1x^{i-1}\text{d} x \\ &= \int_0^1\sum_{i=1}^n\binom{n}{i}(-x)^{i-1} \text{d}x \\ &= \int_0^1 -\frac{1}{x}(\sum_{i=0}^n \binom{n}{i}(-x)^i-1)\text{d}x \\ &= \int_0^1-\frac 1 x((1-x)^n-1)\text dx \\ &= \int_0^1\frac{1-x^n}{1-x}\text dx \\ &= \sum_{i=0}^{n-1} \int_0^1 x^i \text dx \\ &= \sum_{i=0}^{n-1} \frac{1}{i+1}\\ &= H_n &\square \end{aligned} $$

法 4:GF

[TBD]

【清华集训 2014】sum

给定 $n,r$,求 $\sum_{i=1}^{n}(-1)^{i\sqrt{r}}$。

直接做并不是很好做,考虑把幂消掉。

$$(-1)^x=1-2(x\ \text{mod}\ 2)$$

因此有

$$ \sum_{i=1}^{n}(-1)^{i\sqrt{r}} = \sum_{i=1}^n 1-2\lfloor i\sqrt r\rfloor + 4 \lfloor \frac{i\sqrt r}{2} \rfloor \\ $$

需要求的问题其实是 $\sum_{i=1}^n\frac{a\sqrt r+b}{c}$。考虑一个类似类欧的东西。

$$ \begin{aligned} t&:=\frac{a\sqrt r+b}{c} \\ f(n,a,b,c) &:= \sum_{i=1}^n \lfloor ti\rfloor = \sum_{i=1}^n \sum_{j=1}^{\lfloor ti\rfloor} 1 \end{aligned} $$

考虑交换求和次序。特判掉 $r$ 是整数的情况,则有:

$$ \begin{aligned} &j \le \lfloor ti\rfloor < ti \\ \implies &i > \frac{j}{t} \ge \lfloor \frac{j}{t} \rfloor \end{aligned} $$

因此

$$ \begin{aligned} f(n,a,b,c)&= \sum_{j=1}^{\lfloor nt \rfloor}(n-\lfloor\frac{j}{t}\rfloor) \\ &= n\cdot \lfloor nt \rfloor -\sum_{j=1}^{\lfloor nt \rfloor}\lfloor \frac{1}{t}\cdot j \rfloor \\ &= n\cdot \lfloor nt \rfloor - f(n\cdot \lfloor nt \rfloor,ac,-bc,a^2r-b^2) \end{aligned} $$

为了保证复杂度,在 $t \ge 1$ 的时候要先将整数部分去掉。这样至多递归两次的时候 $n$ 可以减半。

证明:考虑 $t \le 0.5$ 时一次就可以减半;否则 $\frac{1}{t} < 2$,故有 $\{\frac{1}{t}\}=\frac{1}{t}-1$, 两次递归后 $n \gets n \cdot t \cdot (\frac1t-1)=n(1-t)<0.5n$。

这里有一个很玄学的事情:递归下去的时候 $a,b,c$ 一直增大,一下子就爆 long long 了。于是我们把 $a,b,c$ 除掉他们的 $\gcd$。打个表 可以发现在题目的数据范围内不会爆,太深刻了!

一个有趣的结论

定义 $\text{val}(F(x))$ 为 $F(x)$ 各项系数 $\gcd$,有:

$$ \text{val}\left(\prod_{i=1}^n F_i(x)\right) = \prod_{i=1}^n\text{val}(F_i(x)) $$

证明

不妨记 $x = \text{val}\left(\prod_{i=1}^n F_i(x)\right),\ y = \prod_{i=1}^n\text{val}(F_i(x))$。

  • 显然,$y \mid x$。
  • 假设 $p\cdot y \mid x\ (p \in P)$,考虑将 $F_i(x)$ 每项系数都除以 $\text{val}(F_i(x))$;考虑每个多项式在模 $p$ 意义下的系数,由于之前除的是 $\gcd$ 所以一定存在一项非 $0$,将每个多项式非 $0$ 最高位乘起来,设结果为 $kx^t$,则 $[x^t]\prod_{i=1}^nF_i(x) \equiv k \not \equiv 0 \pmod p$,故 $p\cdot y \nmid x$,矛盾。
  • 综上,$x=y$。$\square$

多重背包二进制分组做法复杂度分析

事实上,我们可以分析到比根号 log 物品总重量更优秀!

记 $t_i$ 表示大小为 $i$ 的物品的数量,我们有 $W=\sum_ii\cdot t_i$。下面证明,二进制分组实现的多重背包复杂度为 $W\sqrt W$。

显然,总运算量为 $c = W\sum_i \log_2 t_i$。由于 $\lfloor\log_2 x\rfloor+1 = \sum_{p \ge 0}[2^p \le x]$,我们有:

$$ \begin{aligned} \sum_i \log_2t_i &\le \sum_i\sum_p [2^p \le t_i] \\ &=\sum_p \sum_i [\lfloor\frac{t_i}{2^p}\rfloor>0] \end{aligned} $$

同时,$\sum_ii\lfloor\frac{t_i}{2^p}\rfloor\le\frac{W}{2^p}$,故有:

$$ \sum_i \log_2t_i = O(\sum_p\sqrt{\frac{W}{2^p}})=O(\sqrt W) $$

故总复杂度为 $O(W\sqrt W)$。$\square$

标签: math

添加新评论