省选模拟测试24

我裂开了呀,三道题全是数学题。

你让我这个数学菜鸡怎么活。

由于这几道题这个菜鸡都看不懂,所以就把题解都搬过来了。

T1 数字

题目内容

给定 \(n,p\) 以及长度为 \(p-1\) 的数列 \(a_0,a_1,\cdots,a_{p-2}\),其中 \(p\) 是个质数。你需要求出:

\(\displaystyle\sum_{i=1}^na_{i\bmod\ (p-1)}\cdot\varphi(i) \mod p\)

其中 \(\varphi\) 是欧拉函数,即 \(\varphi(i)\) 表示小于等于 \(i\) 且与 \(i\) 互质的正整数个数,\(p\) 给定,且 \(p\) 是个小质数,满足 \(2 \le p \le 23\)

总共会给定 \(T\) 组数列 \(a_i\),你需要对于它们分别算出答案。

注意常数对于程序运行时间的影响,尽量减少取模运算,预处理两个数乘法取模的结果可以大幅度加快运算。

数据范围:\(1 \le n \le 10^9,1 \le T \le 10^4,0 \le a_i < p,2 \le p \le 23\)\(p\) 是质数

solution

数论数学+单位根反演。

先考虑单位根反演一下:

\(\displaystyle\sum_{i=1}^{n} a_{i \text{mod} (p-1)} \times \varphi(i)\)

\(=\displaystyle\sum_{i=0}^{p-2}a_i\sum_{j=1}^{n} [j \equiv i\pmod {p-1}] \varphi(j)\)

\(=\displaystyle {1\over p-1}\sum_{i=0}^{p-2}a_i\sum_{j=1}^{n}\varphi(j)\times \sum_{k=0}^{p-2} w_{p-1}^{k(j-i)}\)

\(\displaystyle ={1\over p-1}\sum_{i=0}^{p-2}a_i \sum_{k=0}^{p-2}w_{p-1}^{-ki} \sum_{j=1}^{n} \varphi(j)\times w_{p-1}^{kj}\)

然后对于每一个 \(b=0...p-2\) 要求出:\(\sum_{j=1}^{n} \varphi(j)\times (w_{p-1}^k)^j\)

设:\(S(n,k) = \displaystyle\sum_{j=1}^{n}\varphi(j)\times k^j\)

\(\displaystyle S(n,k) = \sum_{i=1}^{n}k^i(i-\sum_{j\mid i,j<i} \varphi(j) = \sum_{i=1}^{n} k^ii-\sum_{d=2}^{n}\sum_{j=1}^{n\over d} \varphi(j)-k^{dj} = \sum_{i=1}^{n}k^ii-\sum_{d=2}^{n}S({n\over d},k^d)\)
数论分块时需要计算类似于 \([l,r]\) 中每个 \(k^d mod p\) 出现了多少次。由于 \(k^d mod p\) 是以 \(p-1\) 为循环节的,因此可以 \(O(p)\) 算出,复杂度 \(O(n^{2\over 3}p^2)\)
但是注意到长度小于 \(p\) 的段没必要 \(O(p)\) 统计,暴力即可。而长度 \(>= l\) 的段个数是 \(O(\sqrt{n\over l})\) 的,因此总复杂度为 \(O(n^{2\over 3}p^{3 \over 2})\)


T2 糖果

题意描述

\(n\) 箱糖果,其中第 \(i\) 箱里有 \(a_i\) 堆糖果,每堆糖果都有 \(2_i\) 个,如果拿了 \(k\) 个,得到的快乐值为 \(\displaystyle \sum_{j=\max(k,i)}^{2i}(-1)^{j-k}\binom jk\binom{i}{j-i}-[k=0]\)。其中 \([k=0]\) 表示当 \(k=0\) 时值为 \(1\),否则为 \(0\)。最终可以从每箱中的每堆里面各拿出一些糖果放在一起,得到的快乐值为每堆糖果的快乐值的乘积(注意可以是负数)。例如 \(n=2,a_1=a_2=1\),从第一堆里拿 \(0\) 个,第二堆里拿 \(3\) 个,获得的快乐值为 \((-1)\times(-2)=2\)

对于每一种拿法,你都需要把这些糖果分给 \(m\) 个小朋友,小朋友可以不分到糖果,但是 \(m\) 个糖果必须分完。

你需要算出所有方案下,快乐值的总和是多少。两种方案不同当且仅当从某堆里拿出的糖果数量不同,或者某个小朋友分到的糖果数量不同。小朋友都是有区别的,糖果是没有区别的。

由于答案很大,你只需要输出快乐值总和 \(\bmod\ 99824435\) 的结果即可。

数据范围:\(1 \le n,m \le 10^5,0 \le a_i < 998244353\)

solution

数论数学+期望+多项式。

设第 \(i\) 箱没推糖果的 \(OGF\)\(F_i\), 则相当于求:

\(\displaystyle \sum_{i}{(i+m-1\choose m-1)}[x^i]\prod_{j=1}^{n}F_{j}^{a_i}\)

把组合数写成关于 \(i\) 的下降幂多项式,不难发现只需要算右边算式的 \(0\sim m-1\) 解导数的系数和。余数只需要求出每个 \(F\) 的高阶导的 \(EGF\) 即可。

\(\displaystyle \sum_{j=k}^{2^i}j^{\underline k} \sum_{l=\max(j,i)}^{2i}(-1)^{l-j}{l\choose j}{i\choose l-i}-[j=0]\)

\(=\displaystyle k!\sum_{l=i}^{2i}{i\choose l-i}\sum_{j=k}^{l}(-1)^{l-j}{j\choose k}{l\choose j}-[k=0]\)

\(\displaystyle =k!\sum_{l=i}^{2i}{i\choose l-i}{l\choose k}\sum_{j=k}^{l}(-1)^{l-j}{l-k\choose j-l}-[k=0]\)

注意到后面的求和符号不为 \(0\), 当且仅当 \(l=k\), 因此值为:

\([k\geq i]k!{i\choose k-i}-[k=0]\)

因此 \(EGF\) 恰好为 \(x^i(x+1)^i-1\), 于是我们就相当于计算下式的前 \(m\) 项:

\(\displaystyle \prod_{i=1}^{n}(x^i(x+1)^i-1)^{a_i}=(-1)^{\sum a_i}\prod_{i-1}^{n}(1-x^i(x+1)^i)^{a_i}\)

\(y=x^2+x\),即算:

\(\displaystyle \prod_{i=1}^{n}(1-y_i)^{a_i}=\exp(-\sum_{i=1}^{m}a_i\sum_{j=1}^{m}{y^{ij}\over j})\)

于是得到了关于 \(y\) 的多项式 \(P(y)\), 由于 \(y=x^2+x=(x+{1\over 2})^2-{1\over 4}\), 于是令 \(z=x+{1\over 2}\), 我们可以先计算 \(Q(z^2) = P(z^2-{1\over 4})\), 在平移一步及可得到关于 \(x\) 的多项式。

复杂度:\(O(nlogn)\)


T3 星星

题目内容

三维空间里有一些星星,第 \(i\) 颗星星的坐标为 \((x_i,y_i,z_i)\),且有 \(p_i\) 的概率发光,\(1-p_i\) 的概率不发光。保证任意四颗星星不在同一个平面上。

称一个星星是美丽的,当且仅当他是发光的,且不存在另外四颗发光的星星,使得这颗星星被严格包含在这另外四颗星星形成的三棱锥中。你需要求出期望有多少星星是美丽的。

为了避免精度问题,你需要输出这个期望对 \(998244353\) 取模的结果。

数据范围:\(4 \le n \le 100,0 \le x_i,y_i,z_i \le 10^5\),保证不会有四点共面的情况。

solution

计算几何+期望。

不难发现,我们求的其实是期望三维凸包的大小。

暴力枚举哪些点出现,注意我们只需要预处理 \(f(S)\) 表示有哪些点不会被 \(S\) 中的三棱锥包含,注意只有 \(|S|<=4\) 的时候才需要暴力判断,剩下的时候取所有子集的交即可。于是复杂度 \(O(2^n n)\)

当然抄模板每次建出三维凸包也可以做到 \(O(2^n n^2)\)

注意到欧拉公式 \(V-E+F=2\),我们只需要计算 \(E,F\) 的期望即可。
因此复杂度 \(O(n^4)\),注意讨论只有小于等于三个点出现的情况。


posted @ 2021-03-31 21:01  genshy  阅读(90)  评论(0编辑  收藏  举报