「总结」多项式生成函数例题(1)

1.礼物
先给你们来个简单点的。
http://hzoj.com/contest/220/problem/1
那么其实就是在求最小的:
\[\begin{array}{rcl}ans&=&\sum\limits_{i=1}^{n}(x_i-y_i+c)^2\\&=&\sum\limits_{i=1}^{n}(x_i-y_i)^2+2(x_i-y_i)c+c^2\end{array}\]
可以发现贡献分成了两部分。
一部分的变量是\(c\)另一部分是\(x,y\)。
这样分别计算最小值即可。
右边的那个直接带入\(c\in[-100,100]\)即可。
左边的再接着化式子。
\[\sum\limits_{i=1}^{n}x_i^2+y_i^2-2x_iy_i\]
前面的可以直接求。
只需要求后面的部分:
\[\sum\limits_{i=1}^{n}x_iy_i\]
的最大值。
\[\sum\limits_{i=1}^{n}x_{(i+k)mod\ n}y_i\]
发现卷积的影子了。
我们将\(y\)复制一次接到后面,\(x\)直接翻转。
做一次多项式乘法。
第\(i+n\)项的系数,就是错位\(i\)次之后的乘法值。
这样问题就在\(O(nlogn)\)复杂度内解决了。

2.染色
http://hzoj.com/contest/126/problem/9
题解直接丢链接:https://www.cnblogs.com/Lrefrain/p/11644603.html

3.城市规划
http://hzoj.com/contest/126/problem/10
这个题其实也不难。
首先根据一个套路我们枚举和\(1\)在同一个联通块内的点的个数。
这样可以得到一个补集容斥的式子:
\[dp[n]=2^{\binom{n}{2}}-\sum\limits_{i=1}^{n-1}\binom{n-1}{i-1}2^{\binom{n-i}{2}}dp[i]\]
随便化一下出卷积式就行了。
但是发现是自己卷自己。
分治\(FFT\)解决。
这个分治很简单自己去\(yy\)吧。

4.图的价值
http://hzoj.com/contest/126/problem/11
鉴于大部分人都不会斯特林数。
这里给出一个公式:
\[x^m=\sum\limits_{i=0}^{m}\begin{Bmatrix}m\\i\end{Bmatrix}x^{\underline i}\]

然后愉快的开始推式子吧!
首先考虑每个点的贡献,就可以得到如下的答案:
\[ans=n2^{\binom{n-1}{2}}\sum\limits_{i=1}^{n-1}\binom{n-1}{i}i^k\]
设\[F(n)=\sum\limits_{i=1}^{n}\binom{n}{i}i^k\]
\[\begin{aligned}\F(n)&=\sum\limits_{i=1}^{n}\binom{n}{i}i^k\&=\sum\limits_{i=1}^{n}\binom{n}{i}\sum\limits_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}i^{\underline j}\&=\sum\limits_{i=1}^{n}\sum\limits_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}\binom{n}{i}\binom{j}{i}j!\&=\sum\limits_{j=0}^{k}j!\begin{Bmatrix}k\\j\end{Bmatrix}\sum\limits_{i=0}^{n}\binom{n}{i}\binom{i}{j}\&=\sum\limits_{j=0}^{k}j!\begin{Bmatrix}k\\j\end{Bmatrix}\sum\limits_{i=0}^{n}\binom{n}{j}\binom{n-i}{j-i}\&=\sum\limits_{j=0}^{k}j!\begin{Bmatrix}k\\j\end{Bmatrix}\binom{n}{j}2^{n-j}\&=\sum\limits_{j=0}^{k}j!\frac{n!}{j!(n-j)!}2^{n-j}\begin{Bmatrix}k\\j\end{Bmatrix}\&=n!\sum\limits_{j=0}^{k}\frac{2^{n-j}}{(n-j)!}\begin{Bmatrix}k\\j\end{Bmatrix}\\end{aligned}\]
卷积形式出现了。
现在还有一个问题。
第二类斯特林数怎么求?
第二类斯特林数\(\begin{Bmatrix}n\\k\end{Bmatrix}\)的含义是,\(n\)个物品分成\(k\)个没有标号的集合的方案数,保证集合非空。
这样我们就可以考虑容斥出这个东西。
考虑二项式反演。
我们一共有\(n\)个元素和\(k\)个集合,来模拟划分的过程来满足0个非空这个条件。
我们设\(g(m)\)为划分中至少\(m\)个空集合的方案数,\(f(m)\)为恰好有\(m\)个。
\[g(m)=\binom{k}{m}(k-m)^n\]
\[g(m)=\sum\limits_{i=m}^{k}\binom{k}{i}f(i)\]
二项式反演得到:
\[f(m)=\sum\limits_{i=m}^{k}(-1)^{i-m}\binom{k}{i}g(i)\]
\[f(0)=\sum\limits_{i=0}^{k}(-1)^i\binom{k}{i}(k-i)^m\]
那么:
\[\begin{aligned}\\begin{Bmatrix}n\\k\end{Bmatrix}&=\frac{f(0)}{k!}\&=\frac{1}{k!}\sum\limits_{i=0}^{k}(-1)^k\binom{k}{i}(k-i)^m\&=\frac{1}{k!}\sum\limits_{i=0}^{k}(-1)^k\frac{k!}{i!(k-i)!}(k-i)^m\&=\sum\limits_{i=0}^{j}\frac{(-1)^i}{i!}\frac{(k-i)^m}{(k-i)!}\\end{aligned}\]
这样也是卷积了。
可以\(O(nlogn)\)求出一行的第二类斯特林数。
那么把斯特林数代入上面的式子一起卷积即可。

原文地址:https://www.cnblogs.com/Lrefrain/p/12024175.html

时间: 2024-07-31 15:17:36

「总结」多项式生成函数例题(1)的相关文章

「总结」多项式生成函数例题(4)

就是大概做点题: 1.(车万题?)哈德曼的妖怪少女 http://121.17.168.211:8005/contest/275/problem/2 这个题考场上不会复合逆,打表出了小于6的,剩下的部分就可以直接用类似数树的方法用\(exp\)统计了. 然后说一下正解. 其实这个题分两步. 第一步:求出大小为某个数的边双的方案数. 第二步:用类似数树的方法组合各个边双,成为一颗边双树. 对于做过了数树的我来说第二步仅仅是一个套路. 难点在于第一步. 不妨先计算有根边双的数目. 设\(b_i\)为

「总结」多项式生成函数例题(2)

是\(FWT\)的例题了. 这里我做的题也不多,教练说尽可能多的讲. 只能给你们讲所有我做过的了. 1.按位或 http://hzoj.com/contest/126/problem/13 题解直接发链:https://www.cnblogs.com/Lrefrain/p/11655078.html 2.随机游走 http://hzoj.com/contest/220/problem/5 题解直接发链:https://www.cnblogs.com/Lrefrain/p/11655078.htm

「总结」多项式生成函数相关(1)

实在是太毒瘤了. 大纲. 多项式生成函数相关 默认前置:微积分,各种数和各种反演,FFT,NTT,各种卷积,基本和式变换. 主要内容: 泰勒展开,级数求和,牛顿迭代,主定理. //例题:在美妙的数学王国中畅游,礼物 多项式全家桶:乘法,求逆,求导,积分,分治,ln,exp,fwt,MTT. //城市规划,图的价值,染色,遗失的答案,按位或,随机游走. 生成函数:普通型生成函数,指数型生成函数计数原理. //猎人杀,遗忘的集合,生成树计数 例题. 一.泰勒展开和级数求和 1.泰勒展开 即对于任何函

「总结」多项式生成函数相关(2)

这次主要来说一下\(FWT\) 我们知道\(FFT\)是一种变换. 我们要构造的\(FWT\)也是一种变换. \(FWT\)是用来干什么的呢? 用来求位运算卷积. 或许这么说还是不够明确. 我们定义卷积是这样一个东西: \[c_k=\sum\limits_{i\circ j}a_ib_j\] 里面那个圈表示一种运算. 普通卷积就是\(+\) 狄利克雷卷积就是\(*\) 子集卷积就是\(\subseteq\) 那么位运算卷积呢? \(and,or,xor\) 其实\(and\)和\(or\)还是比

LibreOJ #525. 「LibreOJ β Round #4」多项式

二次联通门 : LibreOJ #525. 「LibreOJ β Round #4」多项式 官方题解 : /* LibreOJ #525. 「LibreOJ β Round #4」多项式 由于会有多种解 所以只需要找出一组特殊解即可 */ #include <cstdio> #include <iostream> void read (int &now) { register char c = getchar (); for (now = 0; !isdigit (c);

Loj #2541「PKUWC2018」猎人杀

Loj #2541. 「PKUWC2018」猎人杀 题目链接 好巧妙的题! 游戏过程中,概率的分母一直在变化,所以就非常的不可做. 所以我们将问题转化一下:我们可以重复选择相同的猎人,只不过在一个猎人被选择了过后我们就给他打上标记,再次选择他的时候就无效.这样与原问题是等价的. 证明: 设\(sum=\sum_iw_i,kill=\sum_{i被杀死了}w_i\). 攻击到未被杀死的猎人\(i\)的概率为\(P\). 则根据题意\(P=\frac{w_i}{sum-kill}\). 问题转化后:

「POJ3734」Blocks

「POJ3734」Blocks 题意 有\(n\)个盒子和红,蓝,绿,黄四种颜色.使用这四种颜色对盒子进行染色,其中红色和绿色的数量必须为偶数,询问方案数 Solution 易知此题可以用指数型生成函数解决 对于红色和绿色,其\(EGF\)为 \[G_e(x)=1+\frac{x^2}{2!}+\frac{x^4}{4!}+\frac{x^6}{6!}\dots=\frac{e^x+e^{-x}}{2}\] 蓝色和黄色的\(EGF\)为 \[G_e(x)=1+\frac{x^2}{2!}+\fr

「02」《机器学习经&amp;#183;天工开物篇》

上期导读:机器学习,到底在学些什么? 起源 故事要从上古神器差分机说起. 从古至今,所有的算法修炼和真气推演记录,全部要靠门派里的外门弟子手写,工序繁杂不说,还耗时良久,导致各大门派的修炼进度一直提不上来. 直到两百年前,神器大师查尔斯·巴贝奇开始了差分机的设计和制造,在后续大师的不断改良之后,终于实现了从真气计算到密文印刷的过程全部自动化,这样还可以避免人为误差,在那个时候,这是一个非常开创性的想法. ? 差分机使用有限差分法来机器计算多项式函数(一种真气运转模式)的值.有限差分方法是个简单但

「MoreThanJava」计算机发展史—从织布机到IBM

「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 不论新老朋友 我相信您都可以 从中获益.如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! 一.织布机 | 一切的开端 如今代表智能现代的计算机与老式织布机的血缘关系超乎你的想象.无论是摆在写字台上的 台式机.塞在口袋里的 掌上电脑.