首页 > 其他分享 >ssy中学暑假集训有关数学及多项式学习笔记

ssy中学暑假集训有关数学及多项式学习笔记

时间:2024-08-18 12:16:00浏览次数:9  
标签:ssy 个点 多项式 sum 我们 反演 二项式 集训 式子

8.16日 集训倒数第\(7\)天

唉,不知不觉间在ssy中学的暑假集训就要结束了,只剩下一周的时间了,然而byn和yzh还有bao学姐\(21\)号就要走了,暑假就要过去了....

今天模拟赛的第二题很有意思,涉及到了许多的数学知识,正好来恶补一下:

浅谈反演原理和二项式反演

首先来说说什么是反演(inversion),对于一个序列\(\{f_i\}\)来说,如果存在另一个序列\(\{g_i\}\),使得以下公式成立:

\[g_n = \sum_{i=0}^{n}a_{ni}f_i \]

那么反演其实就是利用\(g_0,g_1,g_2,...,gn\)来求出\(f\)序列,也就是把这个柿子变成:

\[f_n = \sum_{i=0}^{n}b_{ni}g_i \]

本质上来说,反演其实是一个解线性方程组的过程,但是你观察后发现,这个矩阵实际上是一个三角矩阵,那必然存在着快捷的方法。对于使得这两个反演公式成立的这些系数应该满足什么条件呢?我们现在就来探讨一番!

反演原理

我们来考虑一下上面的那个柿子:
假设对于上面的任意\(0 \le n \le N\)都满足以下柿子:

\[g_n = \sum_{i=0}^{n}a_{ni}f_i \]

那么反演过后的柿子就是:

\[f_n = \sum_{i=0}^{n}b_{ni}g_i \]

那么我们将\(g_i\)带入就可以得到下面的式子:

\[\begin{aligned} f_n &= \sum_{i=0}^{n}b_{ni}\sum_{j=i}^{n}a_{nj}f_j(1) \\ &=\sum_{i=0}^{n}f_i \sum_{j=i}^{n}a_{nj}b_{nj} (2) \end{aligned} \]

这个时候问题出现了,为什么\((1)\)的式子与\((2)\)相等呢?我们画一个矩阵中的正三角来表示:

\[\begin{bmatrix} b_{n0}a_{00}f_0 & & & \\ b_{n1}a_{10}f_0 & b_{n1}a_{11}f_1 & & \\ b_{n2}a_{20}f_0 & b_{n2}a_{21}f_1 & b_{n2}a_{22}f_2 & \\ \vdots & \vdots & \ddots & \\ b_{nn}a_{n0}f_0 & b_{nn}a_{n1}f_1 & \cdots & b_{nn}a_{nn}f_n \\ \end{bmatrix} \]

显然,\((1)\)的式子是按照矩阵中的式子一竖列一竖列来计算的,然后加起来;\((2)\)的式子是按照矩阵中的式子一行一行来计算的,然后加起来。由于整体不变,所以\((1) = (2)\)。

反演的应用

接下来我们介绍二项式反演(binomial inversion),见下面的公式

\[f_n = \sum_{i=0}^{n}(-1)^iC_{n}^{i}g_i \Leftrightarrow g_n = \sum_{i=0}^{n}(-1)^iC_{n}^{i}f_i \]

这个是不是不太熟悉?我们介绍他的另一种情况:

\[f_n = \sum_{i=0}^{n}C_{n}^{i}g_i \Leftrightarrow g_n = \sum_{i=0}^{n}(-1)^{n-i}C_{n}^{i}f_i \]

证明不会写,看这个或者代数证明是这个

那么反演我们就先到这里,接下来介绍二项式定理
这个很简单,就是下面的这个式子:

\[(a+b)^n = \sum_{i=0}^{n}C_{n}^{i}a^{n-i}b^i \]

好了已经了解了这么多的前置芝士接下来我们该做题目了!

二项式反演与二项式定理的综合

给定\(N\)个点,求有标号DAG数量 \(mod 998244353\),不强制联通。

设\(f_i\)表示\(i\)个点的答案,首先我们钦定\(i\)个入度为\(0\)的点,然后连向其他的点,这样会算重复,为什么呢?看下面这个图:

这个\(3\)点是\(1\)点和\(2\)点两个入度为\(0\)的点所连接的点,可是\(3\)这个点却被计算了两次,这就是我们说的重复

接下来我们考虑如何避免重复,我们可以换种方法,我们钦定\(h_{i,j}\)表示\(i\)个点中至少选\(j\)个入度为\(0\)的点的总方案数,\(c_{i,j}\)表示\(i\)个点中恰好选\(j\)个入度为\(0\)的点的总方案数,那么有以下公式:

\[h_{i,j} = \sum_{k=i}^{j}C_{k}^{j}c_{i,k} (1) \]

解释一下奥:如果我们先不考虑一个图中的不同情况数,那么答案其实就是:

\[h_{i,j} = \sum_{k=i}^{j} c_{i,k} \]

为什么要求和呢?还记得我们之前说\(h\)数组和\(c\)数组的定义吗?\(h\)数组是至少,所以对于恰好\(j\)个而言,他还需要补上\(j+1,j+2,...,m\),那么因为求得是总和,所以我们要加上这一部分,那么为什么要加上
\(C_{k}^{j}\)呢?假设我们现在选取了了\(6\)个点,要从中选出\(3\)个,如下图:

在下面这个图中,选择\(4\)个点的话可能性有\(C_{6}^{4}\)种,每次选出\(4\)个都要乘上对应的\(f_4\),这就构成了一种贡献。

那么对于式子\((1)\)而言,我们可以运用二项式反演导出另一个式子:

\[c_{i,j} = \sum_{k = i}^{j}C_{k}^{j}(-1)^{k-j}h_{i,k} \]

那么\(h_{i,j}\)很好求,首先要从\(i\)个点中选择\(j\)个点,那么运用组合数不难发现是\(C_{i}^{j}\),接下来我们就得到了两个点集,一个拥有\(j\)个节点,另一个拥有\(i-j\)个节点,那么由于这是一个DAG,所以对于\(j\)个节点连向\(i-j\)个节点,他的总方案数就是\(j(i-j)\),由于每条边拥有两种方向,所以也就是\(2^{j(i-j)}\)种可能性。我们计算的是拥有\(j\)个节点的那一个点集,同时我们也要考虑到那个\(i-j\)个点构成的另一个点集,所以答案又要乘上\(f_{i-j}\)。所以\(h_{i,j}\)就等于:

\[h_{i,j} = C_{i}^{j}2^{j(i-j)}f_{i-j} \]

标签:ssy,个点,多项式,sum,我们,反演,二项式,集训,式子
From: https://www.cnblogs.com/grz0306/p/18363880

相关文章

  • 集训D1-3
    集训DAY1搜索进阶因此在学习的时候主要以代码实践为主(多做题)深度优先搜索(dfs)基础1.子集枚举复杂度\(O(2^n)\)2.排列枚举复杂度\(O(n!)\)Dfs的剪枝1.优化搜索顺序sort枚举顺序(正/倒)2.排除等效冗余inlinevoiddfs(inti,intlen,intst){//P1120 if(i==cnt+1).........
  • 集训D4-5
    DAT4-5图论最短路性质记\(dis[u]\)代表从源点走到u的最短路长度1.贪心性:源点到任意一个点最短路上的每一步都是一个最短路2.存在性:两个点之间的最短路有可能不存在。(源点存在一个到达该点且经过一个负环的路径/图不连通)3.三角形不等式:对于一条边\(u\stackrel{w}{\to}v\),一......
  • 『模拟赛』暑假集训CSP提高模拟23
    Rank玩蓝图玩的A.进击的巨人(原题都是牛客的,没号所以不挂了)赛事看到概率期望一眼润,但是又可惜暴力分,遂打(最坏情况下)\(\mathcal{O(n^2)}\)暴力,结果很给力啊,调出来小样例后大样例嗖的一下就过了,惊喜了属于是,喜提100pts。事实上跑这么快是因为0的数量很平均,导致复杂度大......
  • [赛记] 暑假集训CSP提高模拟22 23
    连通块66pts老套路,删边改加边;但改完以后不知道怎么求最长路径了,当时也想到了维护直径,但不知道咋干;具体地,用并查集维护连通性,每次合并时需要维护新的直径,不难发现,新的直径的两个端点一定在原来的两个直径的四个端点中选;于是只有六种情况,枚举一下即可;我们要直径有啥用呢?当我们......
  • 2024.8.16 总结(集训)
    今天是[whx](?)巨佬来给我们讲数论,大概是狄利克雷卷积、莫比乌斯反演、杜教筛、PN筛这条线路。虽然我很喜欢莫反,之前写了一些莫反题,但今天还是很有收获。对整除分块、杜教筛的理解更深刻了(关于整除分块为什么是\(O(\sqrtn)\)的、杜教筛的本质)。明白了\(\mu\)适合容斥。见到......
  • 2024 暑假平邑一中集训整合(下)
    Day10考试T3形式化题意,给定\(n,m\),求\(\sum^n_{i=1}\sum^m_{j=1}\displaystyle\begin{pmatrix}n\\i\\\end{pmatrix}\displaystyle\begin{pmatrix}i\\j\\\end{pmatrix}\)推式子:\[\sum^n_{i=1}\sum^m_{j=1}\displaystyle\begin{pmatrix}n\\i......
  • 『模拟赛』暑假集训CSP提高模拟22
    Rank非常好重测,使我Rank--A.法阵原[CF1503E]2-Coloring出题人注:原题3100,张口放T1一眼高难度题,于是果断开始暴力打表,但我的打表程序十分暴力,跑\(n=6,m=9\)的点就已经开始硬控了,遂只拿到30pts。打表就不用放了吧,等我咕咕正解。B.连通块同[yLCPC2024]F.PANDORA......
  • 暑假集训csp提高模拟22
    赛时rank24,T120,T266,T30,T410T1*3100,T2逆天trick,T3抽象题面,T4也挺抽象反正是暴力专场T1、T3、T4太抽象了,不会,直接挂的官方题解可能模拟赛难度为强紫+弱紫/强蓝+紫+紫?调了一个最简单的T2,学习一下这个trick。我树套树还没写玩呢T1法阵2-Coloring原题3100,张口放......
  • 7次多项式对若干个点进行拟合,并生成图像|MATLAB实现
    文章目录拟合运行结果完整代码拟合MATLAB对数据进行拟合的意义是通过数学模型和统计方法对实际数据进行分析和预测。拟合可以帮助我们理解数据背后的规律和趋势,从而做出科学决策。拟合的意义揭示数据的规律预测未来趋势数据修正和异常检测数据分析......
  • 暑假集训csp提高模拟21
    赛时rank47,T120,T20,T330,T445赛时最后想到了T1的正解,可惜没有打出来。整场比赛都在死磕T1的神秘构造,导致本来可以AC的T2没有写,开题的策略不行,太容易死磕了。T1黎明与萤火DestructionofaTree贪心构造。先给一组数据Input:501234Output:YES24135......