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)\)。

Solution Set - 多项式杂题的更多相关文章

  1. Solution -「树上杂题?」专练

    主要是记录思路,不要被刚开始错误方向带偏了 www 「CF1110F」Nearest Leaf 特殊性质:先序遍历即为 \(1 \to n\),可得出:叶子节点编号递增或可在不改变树形态的基础上调整为 ...

  2. 2019暑期金华集训 Day6 杂题选讲

    自闭集训 Day6 杂题选讲 CF round 469 E 发现一个数不可能取两次,因为1,1不如1,2. 发现不可能选一个数的正负,因为1,-1不如1,-2. hihoCoder挑战赛29 D 设\ ...

  3. Atcoder&CodeForces杂题11.7

    Preface 又自己开了场CF/Atcoder杂题,比昨天的稍难,题目也更有趣了 昨晚炉石检验血统果然是非洲人... 希望这是给NOIP2018续点rp吧 A.CF1068C-Colored Roo ...

  4. 贪心/构造/DP 杂题选做Ⅱ

    由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...

  5. 正睿OI DAY3 杂题选讲

    正睿OI DAY3 杂题选讲 CodeChef MSTONES n个点,可以构造7条直线使得每个点都在直线上,找到一条直线使得上面的点最多 随机化算法,check到答案的概率为\(1/49\) \(n ...

  6. dp杂题(根据个人进度选更)

    ----19.7.30 今天又开了一个新专题,dp杂题,我依旧按照之前一样,这一个专题更在一起,根据个人进度选更题目; dp就是动态规划,本人认为,动态规划的核心就是dp状态的设立以及dp转移方程的推 ...

  7. wangkoala杂题总集(根据个人进度选更)

    CQOI2014 数三角形 首先一看题,先容斥一波,求出网格内选三个点所有的情况,也就是C(n*m,3);然后抛出行里三点共线的方案数:C(n,3)*m; 同理就有列中三点共线的方案数:n*C(m,3 ...

  8. Codeforces 杂题集 2.0

      记录一些没有写在其他随笔中的 Codeforces 杂题, 以 Problemset 题号排序   1326D2 - Prefix-Suffix Palindrome (Hard version) ...

  9. 【Java面试】-- 杂题

    杂题 2019-11-03  21:09:37  by冲冲 1.类加载器的双亲委派机制 类加载器:把类通过类加载器加载到JVM中,然后转换成class对象(通过类的全路径来找到这个类). 双亲委派机制 ...

  10. 贪心/构造/DP 杂题选做Ⅲ

    颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...

随机推荐

  1. spring需要在https下进行开发配置方法

    keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365 genkey ...

  2. 登陆mysql,Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) "

    今天ssh到slave机器上,登陆mysql,遇到下图的报错. 查了一圈,最终解决办法简洁的出乎意料. 首先,要查看mysql服务是否已经启动(真的太容易漏掉) 第2步,你可能会自然而然的以为密码也是 ...

  3. 2024SHCTF--Crypto--Week1&Week2--WP

    2024SHCTF 注:针对2024SHCTF赛事,写下自己的解题思路以及个别赛题赛后复现对于题目而产生的理解. Week1 d_known task: from Crypto.Util.number ...

  4. 4.8 Linux解压.bz2格式的文件(bunzip2命令)

    要解压".bz2"格式的压缩包文件,除了使用"bzip2 -d 压缩包名"命令外,还可以使用 bunzip2 命令. bunzip2 命令的使用和 gunzip ...

  5. 一个基于.Net Core 开源的物联网基础平台

    在智慧工厂领域,智慧城市领域,都需要对设备进行监控.比如工厂需要对周围环境温度.湿度.气压.电压,灯的开关进行监控.这时候就需要物联网平台来进行管理. 在智慧工厂领域,宝马集团通过英伟达的Omnive ...

  6. 题解:CF771A Bear and Friendship Condition

    CF771A Bear and Friendship Condition 题解 算法 并查集,图的基本性质 分析 题目意思是,一旦有一些点联通,那么这些点必须两两直接相连.换句话讲,就是图中的每个联通 ...

  7. 2024最新免费IP地址SSL证书申请

    为IP地址申请免费的SSL证书相对较为困难,因为多数证书颁发机构(CA)提供的免费SSL证书主要是基于域名的.不过,还是可以尝试以下方法来申请免费的IP地址SSL证书: 一.确认IP地址与了解需求 确 ...

  8. 微服务探索之路05篇jenkins构建net6和vue docker镜像到Harbor自动更新k8s服务镜像

    从1-4篇已经学习了docker Harbor k8s的基本用法.接下来进阶一下使用jenkins结合起来做到自动部署项目. 1 安装jenkins 1.1前提条件 docker环境,可参考第01篇安 ...

  9. Ansible 运维自动化

    Ansible 概述Ansbile是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,列如持续部署,滚动更新.Ansible 适用于管理企业IT基础设施,从具有少数主机的小规模到数 ...

  10. Python之argparse

    argparse模块可以轻松编写用户友好的命令行界面.该程序定义了它需要的参数,argparse并将找出如何解析这些参数sys.argv.argparse模块还会自动生成帮助和用法消息,并在用户给出程 ...