首页 > 其他分享 >多项式杂题

多项式杂题

时间:2023-02-19 19:23:50浏览次数:34  
标签:frac ln 多项式 sum 计数 text binom 杂题

多项式特训。开始大生产运动。不得不说黑题通过数一下就上来了。

由于大多数比较工业所以一律不放代码。

歌被咕了,打算报复性整点活。整活其实不一定需要整活用的曲。

目前打算是放点“确实有歌词”的,现在备选歌单:

  1. Credits EX
  2. Duplicity Shade
  3. Random ("Take #8" Full Version)
  4. 脑力
  5. Viyella's Memory

P7435 简单的排列计数

先来点比较清新的水一下。然而太久不做多项式题了码的时候出了很大的锅。

首先一个显然的 dp:从小到大插入数,设 \(dp_{i,j}\) 为插入 \(i\) 有 \(j\) 个逆序对的答案,那么

\[dp_{i,j}=\sum_{k=0}^{i-1}dp_{i-1,j-k}i^k \]

然后你发现这玩意不就是

\[\prod_{i=1}^nf_i \]

其中

\[f_i=\sum_{n=0}^{i-1}i^nx^n=\frac{1-(ix)^i}{1-ix} \]

那么套路 \(\ln\exp\) 一下。

分子:

\[\begin{aligned} &\sum_{i=1}^n\ln(1-(ix)^i)\\ =&-\sum_{i=1}^n\sum_{j=1}\frac{(ix)^{ij}}j \end{aligned} \]

\(O(\min(n,k)\log k)\)。

分母:

\[\begin{aligned} &\sum_{i=1}^n\ln(1-ix)\\ =&-\sum_{i=1}^n\sum_{j=1}\frac{(ix)^j}j\\ =&-\sum_{j=1}\frac{x^j}j\sum_{i=1}^ni^j\\ =&-\sum_{j=1}\frac{x^j}{j(j+1)}\sum_{i=0}^j\binom{j+1}iB_i(n+1)^{j-i+1}\\ =&-\sum_{j=1}\frac{x^j}{j(j+1)}\left(-B_{j+1}+(j+1)!\sum_{i=0}^{j+1}\frac{B_i}{i!}\frac{(n+1)^{j+1-i}}{(j+1-i)!}\right) \end{aligned} \]

爆算就行了。提醒忘了的同学伯努利数的 EGF 是 \(\dfrac x{e^x-1}\)。

然后是我太久不写多项式题了导致写的时候出现的一些锅:

  1. 提取 EGF 系数没乘阶乘。
  2. 经典数组不清空。
  3. \(\ln\) 把负号吃了。
  4. 注意分子第一个上界是 \(\min(n,k)\)。

P2767 树的数量

早就写了,然而现在水一下博。

容易得到答案的生成函数

\[F=x(1+F)^m \]

那拉格朗日反演

\[[x^n]F=\frac 1n[x^{n-1}](1+x)^{nm}=\frac{\binom{nm}{n-1}}n \]

写 lucas。

P5219 无聊的水题 I

我们知道这玩意可以变成 Prufer 序列。那么就是 \(n-2\) 长度值域 \(n\) 出现次数最多元素出现 \(m\) 次的序列个数。容斥一下变成出现次数不超过 \(m\) 次,那这玩意显然是

\[(n-2)![x^{n-2}]\left(\sum_{i=0}^{m-1}\frac{x^i}{i!}\right)^n \]

我这一版的求逆没有清空调了半天。日。

P5900 无标号无根树计数

我以为难度全都在代码。

首先套路考虑有根树然后把根不是中心的砍掉。钦定一个根,剩下的就是个 MSET。所以

\[F(x)=x\exp\sum_{i=1}\frac{F(x^i)}i \]

现在的问题是怎么算这个东西。一个 trivial 的想法是套个牛顿迭代上去。

\[\begin{aligned} F(x)=&x\exp\sum_{i=1}\frac{F(x^i)}i\\ \frac{F(x)}x=&\exp\sum_{i=1}\frac{F(x^i)}i\\ \ln\frac{F(x)}x=&\sum_{i=1}\frac{F(x^i)}i\\ \ln\frac{F(x)}x-F(x)-G=0 \end{aligned} \]

其中 \(G=\sum_{i=2}\frac{F(x^i)}i\)。于是有牛顿迭代式子:

\[F=F_0-\frac{\ln\frac{F_0}x-F_0-G}{\frac 1{F_0}-1} \]

实际上似乎不是想象中那么难写。

然后考虑怎么统计答案。首先如果根不是重心,那么肯定有一个儿子大于 \(\left\lceil\dfrac n2\right\rceil\),枚举这个儿子大小算就行了。另外,如果 \(n\) 是偶数,那么 \(\dfrac n2\) 被算了两次,要减掉一次。

loj6538. 烷基计数 加强版 加强版

曾经记得写过某篇题解说过这玩意的生成函数就是

\[F=x\text{MSET}_3(F)+1=x\frac{F(x)^3+3F(x)F(x^2)+2F(x^3)}6+1 \]

牛顿迭代。式子是:

\[F(x)=F_0(x)=\frac{x(F_0(x)^3+3F_0(x)F_0(x^2)+2F_0(x^3))-6F_0(x)+6}{3x(F_0(x)^2+F_0(x^2))-6} \]

P6597 烯烃计数

把碳碳双键拆开变成两个根不超过 \(2\) 个儿子,其他节点不超过 \(3\) 个儿子的无标号有根树计数。那你一棵树就是两个烷基计数合起来,就是

\[G(x)=x\text{MSET}_2(F)+1=x\frac{F(x)^2+F(x^2)}2+1 \]

碳碳双键相当于把两个拼一块,再套一个 \(\text{MSET}\)。

\[H(x)=x\frac{(G(x)-1)^2+G(x^2)-1}2 \]

我发现我写代码的时候老是把 \(F(x^2)\) 写成 \(F(x)\)。

P6598 烷烃计数

首先无根树先看成有根树。然后就是根节点做个 \(\text{MSET}_4\)。式子好长。

\[G(x)=x\frac{F(x)^4+6F(x)^2F(x^2)+3F(x^2)^2+8F(x)F(x^3)+6F(x^4)}{24} \]

去重采用和无标号无根树计数相同的策略即可。

看了看题解似乎有更加高妙的方法。刚才是钦定一个根的情况,设为 \(p\)。然后我们再枚举钦定一条边的情况,把两边拼起来(就是套个 \(\text{MSET}_2\)),记为 \(q\),设 \(s=1\) 当且仅当有两个重心且等价,显然是把 \(F(x)\) 复读一遍,即 \(F(x^2)\)。那么我们的答案就是 \(p-q+s\)。

正确性考虑除重心外的点和其父亲边的贡献。若两个点等价,则其父亲边也等价,可以减掉。而重心不可能和其父亲边等价。而当有两个重心的时候,我们在重心等价时加上了 \(s\) 即可保证不漏掉。以上是 loj6512. 「雅礼集训 2018 Day8」C 的正解。

P4233 射命丸文的笔记

假期望。

先考虑哈密顿回路个数。\(n\) 个节点一个环排列然后剩下的边随便定向,方案显然 \((n-1)!2^{\binom n2-n}\)。然后考虑分母。就是强连通竞赛图个数。

考虑使用普通竞赛图表示强连通竞赛图。普通的显然是 \(2^{\binom n2}\)。

发现竞赛图由于每两个点之间都有连边所以拓扑序唯一。那么强连通缩点之后就是一串强连通竞赛图排一排。也就是 \(\text{Sequence}\) 构造。那么我们设普通竞赛图为 \(G\) ,强连通为 \(F\),则有

\[G=\text{SEQ}(F)=\frac 1{1-F} \]

\[F=1-\frac 1G \]

完事。

tmd 我为什么 EGF 又忘乘阶乘。

P6295 有标号 DAG 计数

似乎 WC2019 中提到所谓“组合生成函数”用来计数带标号有向图,但是似乎泛用性并不高的样子。那就不管这个了。

考虑先求出任意的 DAG 然后给个 \(\ln\)。

像树枚举根,对于 DAG 我们枚举有几个源点。

设 \(f_n\) 为 \(n\) 个点的方案数。那么枚举 \(k\) 个源点向剩下的点任意连边,方案数显然

\[\sum_{k=1}^n\binom nk2^{n(n-k)}f_{n-k} \]

显然会算重,想都不用想。经典容斥可以得到

\[f_n=\sum_{k=1}^n\binom nk(-1)^{k+1}2^{n(n-k)}f_{n-k} \]

看着像卷积。但是得先搞明白组合数和 \(2^{n(n-k)}\)。组合数可以使用二项卷积的套路。对于后边这个东西,我们在 Chirp-Z Transform 里边见过:

\[n(n-k)=\binom n2-\binom k2-\binom{n-k}2 \]

那就没了。设 \(g_i=\dfrac{(-1)^{i+1}x^i}{i!2^{\binom i2}}\),那么显然 \(F(x)=F(x)G(x)+1\)。求个逆再取 \(\ln\) 就行了。

今天先这样。去贺一份有标号荒漠计数的线性做法。

标签:frac,ln,多项式,sum,计数,text,binom,杂题
From: https://www.cnblogs.com/gtm1514/p/17135378.html

相关文章

  • 「杂题乱写」Codeforces 上 DP 乱写
    作为衡中OIer,我们要紧随SoyTony步伐,建设新时代SoyTony特色博客.原博客:SoyTony.目录CF607BZumaCF178FRepresentativeSamplingCF1774ETwoChessPiecesCF1783D......
  • 【杂题乱写】CodeForces上dp乱写1
    难度是\(1900\sim2600\)。1132FCleartheString*2000区间\(\text{dp}\),设\(f_{l,r}\)为删去区间\([l,r]\)的最小代价。一个子问题的突破点是讨论\(l\)是怎......
  • matlab练习程序(泽尼克多项式拟合)
    泽尼克多项式是一个正交多项式,分为奇偶两类。奇多项式:偶多项式:其中:这里fai为方位角,范围[0-2pi];p为径向距离,范围[0,1];n-m大于等于0;如果n-m=0,则R=0。根据不同的m和n......
  • PAT-basic-1010 一元多项式求导 java
    一、题目设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以......
  • 多项式相关算法学习笔记(持续更新)
    第一次用博客园写学习笔记,写的不好请见谅~欢迎各位OIer在评论区说一下自己对这篇博客的建议!有关多项式的基本概念对于求和式\(\suma_nx^n\),如果是有限项相加,称为多项......
  • CF、AT 杂题题解
    CF1455Fsolution1前\(i\)次操作只会影响到\([1,i+1]\),并且在第\(i\)次操作前,原本在位置\(i\)的数只可能在\(i\)或\(i-1\)。于是就可以考虑设\(f_{i,0/1}\)......
  • 多项式全家桶笔记整理(完善中)
    Part0泰勒展开的推广&多项式牛顿迭代§0.1记号和约定为了不在下文引起混淆,这里简述一下这篇文章使用的记号:\(f(x)\)或者\(F(x)\):一个形式幂级数,此处的\(x\)是......
  • 浅析多项式
    浅析多项式目录浅析多项式更好的阅读体验戳此进入写在前面单位根定义复数意义下的的求法性质等比数列求和公式FFT本质目的离散傅里叶变换快速傅里叶变换优化Code例题#1L......
  • 【学习笔记】多项式学习笔记4:生成函数
    参考资料:OI-Wiki、APJ'spdf、学长的课件生成函数\(\text{GF(GeneratingFunction)}\)定义定义一个数列\(\{a_n\}\)的生成函数(或母函数)\(F(x)\)为:\[F(x)=\sum_{i\g......
  • 任意模数多项式乘法-多模数快速数论变换
    本文作者为JustinRochester。目录地址上一篇下一篇任意模数多项式乘法在部分题目中,我们的多项式运算结果并不是对多项式模数(如\(998244353\))取模,而是对一些指定的(......