Solution Set - 多项式杂题


0. 「OurOJ #46942」/「51nod #1824」染色游戏

??Private link & Submission.

??首先,显然有

\[f(t)=\sum_{i=0}^t\binom{t}{i}r_ib_{t-i}. \]

??这是一个卷积的形式,但是我们需要求出卷积结果在 \(\bmod 2\) 意义下的值。从这个 \(\binom{t}{i}\) 入手,发现 \(\binom{t}{i}=1\pmod 2\Leftrightarrow i\in t\)\(i\) 在二进制表示下是 \(t\) 的子集)。也就是说,我们可以直接用子集卷积替代加法卷积\(\mathcal O(n\log^2n)\) 求出卷积结果。

1. 「CF 662C」Binary Table

??Link & Submission.

??注意到当行上(列上)的操作全部确定后,列上(行上)每种操作是否进行可以贪心决策。这提示我们枚举一部分,算另一部分。因为有 \(n\ll m\),我们来暴力枚举行上的 \(2^n\) 种操作是否进行,并在每一列分别算出最小 \(1\) 的数量。但这个怎么优化呢?

??难以转化的地方在于“算出最小 \(1\) 的数量”,涉及到取 \(\min\),我们干脆直接把表打出来:令 \([x^S]F(x)\) 表示某一列为 \(S\) 时,其仅通过列操作能得到最小 \(1\) 的数量。在这个比较构造性的转化之后,接下来的工作就很简单了——令 \([x^S]G(x)\) 为原表格中长相为 \(S\) 的列的出现次数,那么

\[R(x)=F(x)\times^{\oplus}G(x), \]

其中 \(\times^{\oplus}\) 表示异或卷积。可见 \([x^T]R(x)\) 就是行操作为 \(T\) 时的答案。复杂度 \(\mathcal O(nm+n2^n)\)

2. 「WC 2018」「洛谷 P4221」州区划分

??Link & Submission.

??一大坨式子和离奇限制砸脸——哦,原来是状压题。

??一个连通块合法的条件为:该连通块的诱导子图不存在欧拉回路,即不连通或者存在奇度点。

??状压连通性等一系列处理可以快速求出每个连通块是否合法。记 \(f(S)\) 表示划分好 \(S\) 集合内的点的贡献和,那么

\[f(S)=\sum_{S'\cap T=\varnothing,S'\cup T=S}[T\text{ is legal}]\left(\frac{\sum_{u\in T}w(u)}{\sum_{u\in S}w(u)}\right)^pf(S'). \]

??又是子集卷积的形式。注意显然有 \(|T|>1\),所以当引入子集卷积的状态形式 \(f(|S|,S)\) 时,转移仍然没有环。直接 \(\mathcal O(n^22^n)\) 算出来即可。

3. 「THUPC 2019」「洛谷 P5406」找树

??Link & Submission.

??众所周知位独立的运算,特别是这种有交换律的运算,都能用魔改 FWT 支持其卷积。边 \((u,v)\) 的边权 \(v\) 做正变换得到向量 \(\boldsymbol v\),此时一棵生成树的点权定义为边上向量的点积。点积可以分开算,所以算 \(w\) 次矩阵树可以求到记录所有权值的生成树数量的序列 \(R\) 做正变换后的结果,把 \(R\) 逆变换一下,找到最高非 \(0\) 位即可。

??生成树数量很大?随便那一个大素数取模。复杂度是 \(\mathcal O(wn^3)\),但你看这是洛谷 / LOJ 还开了 \(4\text s\) 就放心大胆写了叭。

4. 「JOI 2018 Final」「LOJ #2351」毒蛇越狱

??Link & Submission.

??一堆堆 \(10^6\) 让人不禁去想单 \(\log\),没想到正解甚至不是 polylog。

??自然,我们希望找到某种“前缀和”来加速查询过程,继而想到本质上为高维前缀和的 and 变换和 or 变换。不妨记原序列为 \(f\),and 变换得到序列 \(g\),or 变换得到序列 \(h\)

??但,例如直接用 \(g\) 来查询,问题很大——如果某个 bit 限制为 \(1\),查询结果没有问题;但如果某个 bit 限制为 \(0\),根据 and 卷积的规则,我们会将一些这一 bit 为 \(1\) 的数加入答案。补救一下?我们对 \(0\) bit 的位置做容斥,即枚举哪些 \(0-\)bit 变成了 \(1\),我们确实就能得到答案。

??然后就是比较 constructive 的一点:用 \(g\) 查询,容斥 \(0-\)bit;用 \(h\) 查询,容斥 \(1-\)bit;用 \(f\) 查询,枚举 \(?-\)bit,复杂度平衡,得到 \(\mathcal O(L2^L+Q2^{L/3})\) 的算法。

5. 「OurOJ Contest #2562」多项式佛跳墙

??Private link.

??现推了一遍,直接放草稿了,牛迭之类的地方跳步比较严重,估计会方便记忆(?)带讲解的版本可以看 。板子从零开始不断累计,我交“多项式除法”的那发代码应该算是比较完整的全家桶。

??可以发现,最难(步骤最长)的地方是二次剩余。(

\[\text{Poly-Inversion}\\ u_nv\equiv1\pmod{x^n}\\ u_n^2v^2-2u_nv+1\equiv0\pmod{x^{2n}}\\ v(2u_n-u_n^2v)\equiv1\pmod{x^{2n}}\\ u_{2n}=u_n(2-u_nv) \]


\[\text{Poly-Ln}\\ u=\ln v\\ u'=\frac{v'}{v}\\ u=\int u'\text dx=\int \frac{v'}{v}\text dx \]


\[\text{Poly-Exp}\\ p(u,x)=\ln u-v=0\\ u_{2n}=u_n(1-\ln u_n+v) \]


\[\text{Poly-Sqrt}\\ p(u,x)=u^2-v=0\\ u_{2n}=\frac{1}{2}(u_n+v/u_n) \]


\[\text{Quadratic-Residue (for odd primes)}\\ i^2\equiv a^2-n\pmod p\\ \text{(lemma)}~~~~i^p\equiv i\cdot (i^2)^{\frac{p-1}{2}}\equiv-i\pmod p\\ \text{(lemma)}~~~~(a+b)^p\equiv a^p+b^p\pmod p\\ (a+i)^{p+1}\equiv a^{p+1}+i^{p+1}\equiv a^2-i^2\equiv n\pmod p\\ \left((a+i)^{\frac{p+1}{2}}\right)^2\equiv n\pmod p \]


\[\text{Poly-Division (with remainer)}\\ u=pv+r,~\deg r<\deg v\\ f^{\text R}(x):=x^{\deg f}f(x^{-1})\\ u^{\text R}=p^{\text R}v^{\text R}+x^{\deg u-\deg v+1}r^{\text R}\\ u^{\text R}\equiv p^{\text R}v^{\text R}\pmod{x^{\deg u-\deg v+1}} \]

??鬼故事:全部 \(\mathcal O(n\log n)\)

6. 「OurOJ #5430」yww 与连通块计数

??Private link & Submission.

??不考虑 \(\gcd\) 中的以及 \(\operatorname{lcm}\) 以外的因子,设数 \(a\)\(\gcd\) 以外的因子构成集合 \(S_a\),那么连通块合法,等价于 \(S\) 之交为 \(\varnothing\)\(S\) 之并为全集。

??也就是说,对于每个元素 \(p\),块内都有一个 \(p\in S_1\) 也有一个 \(p\notin S_2\)

??也就是说,存在一对邻接\(u,v\)\([p\in S_{a(u)}]\neq[p\in S_{a(v)}]\)

??也就是说,令边 \((u,v)\) 的权 \(w(u,v)=S_{a(u)}\oplus S_{a(v)}\),则连通块合法等价于 \(w\) 之并为全集。

??手动模拟 or-卷积,可以做到 \(\mathcal O(n2^m)\),其中 \(m=15\),为 \(50\) 以内素数个数。

7. 「OurOJ #47016」排列问题

??Private link & Submission.

??灵活转换“计数视角”,“描述过程”而非“拼凑答案”。

??令 \(F_i(x)\) 表示把颜色为 \(i\) 的球放入若干不同盒子的 EGF,即

\[F_i(x)=\sum_{n\ge1}\binom{a_i-1}{n-1}\frac{x^n}{n!}. \]

那么,\(G(x)=\prod_i F_i(x)\) 即把所有盒子按颜色区分,放在一起的 EGF。相同盒子内的球必然贡献同色对,不同盒子间可能贡献同色对。所以 \(G(x)\) 亦可以转化为“至少有若干同色对”的 EGF。合并石子 \(\mathcal O(m\log^2m)\) 求出 \(G(x)\),二项式反演卷出答案的 GF 即可。

8. 「JLOI 2016」「洛谷 P3270」成绩比较

??Link & Submission.

??令 \(\textit{ans}_K\) 表示答案。先钦定 \(K\) 个被碾压的人的标号,然后考虑每种课程,枚举 B 神的得分组合一下,有

\[\begin{aligned} \textit{ans}_K &= \binom{N-1}{K}\prod_{i=0}^{M-1}\binom{N-K-1}{R_i-1}\sum_{j}(U_i-j)^{R_i-1}j^{N-R_i}\\ &= \binom{N-1}{K}\prod_{i=0}^{M-1}\binom{N-K-1}{R_i-1}\sum_{k=0}^{R_i-1}\binom{R_i-1}{k}U_i^{R_i-1-k}(-1)^k\sum_{j\le U_i}j^{N-R_i+k}. \end{aligned} \]

最后一项自然数幂和可以随意拉插算出来。不过交上去得到了 \(90\) 分的好成绩,猛然发现,被碾压的人一定被碾压,但根据式子,没被碾压的人实际上也可能被碾压。所以还需要对 \(\textit{ans}\) 二项式反演一下。注意和式 \(\sum_{k=0}^{R_i-1}\cdots\)\(K\) 无关,可以先预处理出来。

??如果实现得优美,可以做到 \(\mathcal O(MN^2)\)

相关