求 \(10^5\) 以内的所有贝尔数:将 \(n\) 个有标号的球划分为若干非空集合的方案数 Solution 非空集合的指数生成函数为 \(F(x)=e^x-1\) 枚举一共用多少个集合,答案就是求这些集合的组合(无顺序),于是 \(G(x)=\sum_{i=0}^{\infty} \frac{F^i(x)}{i!}=e^{F(x)}=e^{e^x-1}\) 其中,\([x^n]G(x)\) 即为将 \(n\) 个整数划分为若干个集合的方案数 #include <bits/stdc++.h>…
题意 一个有\(n\)个元素的集合,将其分为任意个非空子集,求方案数.集合之间是无序的,\(\{\{1,2\},\{3\}\}=\{\{3\},\{1,2\}\}\). 设\(f_n\)表示用\(n\)个元素组成的集合的个数,显然\(f_n=1\).设\(F(x)\)为\(f\)的指数型生成函数,那么\(F(x)=\sum_{i=1}\frac{x^i}{i!}\),\(F^i(x)\)的第\(n\)位就是\(i\)个元素个数之和为\(n\)的集合组合在一起的方案数. 设\(g_i\)为\(n=…
有标号DAG计数(生成函数) luogu 题解时间 首先考虑暴力,很容易得出 $ f[ i ] = \sum\limits_{ j = 1 }^{ i } ( -1 )^{ j - 1 } \binom{ i }{ j } 2^{ j( i - j ) } f[ i-j ] $ . 相当于枚举度数为0的节点的个数,向不在这个集合里的点任意连边,之后需要容斥. 考虑如何优化. $ j(i-j) = \frac{ i^{ 2 } }{ 2 } - \frac{ j^{ 2 } }{ 2 } - \f…
还是没有理解透原根--题目提示其实挺明显的,M是质数,然后1<=x<=M-1 这种计数就容易想到生成函数,但是生成函数是加法,而这里是乘法,所以要想办法变成加法 首先因为0和任何数乘都是0,和其他数规则不相符,所以不考虑(答案也没让求) 然后看原根的性质,设g是M的原根,那么\( g^i%M 0<=i<M-1 \)就是1~M-1的不重集合,所以可以把乘法变成原根指数的加法,这样就变成多项式乘法了,可以用NTT优化 然后n非常大,所以使用快速幂进行多项式乘法 #include<…
正题 题目链接:https://www.luogu.com.cn/problem/P5748 题目大意 求将\(n\)的排列分成若干个无序非空集合的方案. 输出答案对\(998244353\)取模. \(1\leq n\leq 10^5,1\leq T\leq 1000\) 解题思路 就是求划分数 分成\(i\)个集合的方案是\((e^x-1)^i\)所以答案的生成函数就是 \[\sum_{i=0}^{\infty}\frac{(e^x-1)^i}{i!} \] emmmmmmmmmmm...…
传送门 生成函数简单题. 题意:给出一个集合A={a1,a2,...as}A=\{a_1,a_2,...a_s\}A={a1​,a2​,...as​},所有数都在[0,m−1][0,m-1][0,m−1]之间,mmm是一个质数,求满足全部由这个集合里的组成且长度为nnn且所有数之积与xxx在模mmm意义下相同的数列总数. 思路:对a1,a2,..,as,xa_1,a_2,..,a_s,xa1​,a2​,..,as​,x全部化成gb1,gb2,...gbs,gyg^{b_1},g^{b_2},..…
[题目描述] 对于从1到N(1<=N<=39)的连续整数集合,划分成两个子集合,使得每个集合的数字之和相等. 举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字和是相等的:{3} and {1,2} 这是唯一的一种分法(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数). 如果N=7,有四种方法能划分集合{1,2,3,4,5,6,7},每一种分法的子集合各数字和是相等的: {1,6,7} and {2,3,4,5};{2,5,7} and {1,3,4,…
对于从1到N(1<=N<=3)的连续整数集合,划分成两个子集合,使得每个集合的数字之和相等.举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字和是相等的:{3} and {1,2} 这是唯一的一种分法(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数).如果N=7,有四种方法能划分集合{1,2,3,4,5,6,7},每一种分法的子集合各数字和是相等的: {1,6,7} and {2,3,4,5};{2,5,7} and {1,3,4,6}; {3,4,7…
题目链接 设序列a的生成函数$\large f(x)=\sum\limits_{i=0}^{n-1}a_ix^i$,则操作1,2,3分别对应将$f(x)$乘上$\Large\frac{1}{1-x},\frac{1}{1-x^2},\frac{1}{1-x^3}$,如果操作1,2,3分别进行了p1,p2,p3次,则最终序列的生成函数为$\Large\frac{f(x)}{(1-x)^{p_1}(1-x^2)^{p_2}(1-x^3)^{p_3}}$,套个二项式定理+多项式乘法+多项式逆元即可.由…
非常思维的一道题目,题意很长 给定s1,s2两个集合,s1维护最大值,s2维护最小值,s1的所有元素要比s2小 操作1:往两个集合里的任意一个添加x 操作2:把x从所在的集合里删掉:要求被删的x必须是s1里最大的元素或s2里最小的元素 因为操作2的要求十分严格..我们可以想到在最后一次操作2结束前所有的操作1都是确定下来的 那我们先来考虑最后一次操作2之前的操作1: 每次加x,但是不知道x往哪里加,那就直接用一个大集合S,把x加进去 直到出现一个操作2:操作2给出的x必然在集合S的某个位置,那比…
洛谷题面传送门 & Atcoder 题面传送门 好久前做的题了--今天偶然想起来要补个题解 首先考虑排列 \(A_i\) 要么等于 \(i\),要么等于 \(P_i\) 这个条件有什么用.我们考虑将排列 \(P_i\) 拆成一个个置换环,那么对于每一个 \(i\),根据其置换环的情况可以分出以下几类: 如果 \(i\) 所在置换环大小为 \(1\),即 \(P_i=i\),那么 \(A_i\) 别无选择,只能等于 \(i\) 如果 \(i\) 所在置换环大小不为 \(1\),那么 \(A_i\)…
前面这是寒假听马士兵老师讲的时候积累的语录.......... 1.php是水果刀,java是菜刀,刀法比较多,一年的和三年的区别很大. 2.nanicat连接mysql出现10061是服务没开启,却是这样,怪不得重装后能连上,关机开启后就连不上了. 3.执行sql脚本,"\. 绝对路径":然后打开navicat刷新看看. 4.切换到project explorer,这样new的话会出现jsp,不用再other:默认是package explorer. 5.JSP里基本不需要程序员自己…
link 巨佬olinr的题解 <-- olinr很强 考虑生成函数 考虑直径上点数>=4的毛毛虫的直径,考虑直径中间那些节点以及他上面挂的那些点的EGF \(A(x)=\sum_{i\ge 1}\frac{ix^i}{i!}\) 考虑和直径两端点相连的节点,我们强制让他挂至少一个点(否则他就成了直径端点就重复了),EGF \(B(x)=\sum_{i\ge 2}\frac{ix^i}{i!}\) 最后答案生成函数就是 \(Ans(x)=B(x)*\frac{1}{1-A(x)}*B(x)\)…
分析 容易发现\(D \leq n - 2m\)时,任意数列都满足要求,直接判掉,下文所讨论的均为\(D > n - 2m\)的情况. 考虑把两个数列合并,显然可以认为是两个带标号对象的合并,可以使用EGF相乘. 我们可以枚举有\(k\)个数出现了奇数次,答案即为: \[ \begin{aligned} ans=&n!\sum_{k=0}^{n-2m}(EVEN(x)+yODD(x))^D[x^n][y^k]\\ =&n!\sum_{k=0}^{n-2m}(\frac{e^x+e^{…
分析 令\(f(i)\)表示共\(i\)组同学讨论cxk的位置的方案数(不考虑其他位置上的人的爱好),这个数组可以很容易地通过依次考虑每个位置是否是四个人中最后一个人的位置来递推求解,时间复杂度\(O(n^2)\). 令\(g(i)\)表示共\(i\)组同学讨论cxk,剩下的\(n-4i\)个位置上的人的爱好的方案数.这个数组可以通过对每种情况,分别写出四种爱好的\(EGF\),然后\(NTT\)合并求解,时间复杂度\(O(n^2 \log n)\). 统计答案的话很简单,容斥一下就好了: \[…
给一个 $n$ 个点 $m$ 条边的无向图,每条边有 $p_i$ 的概率消失,求图连通的概率 $n \leq 9$ sol: 我们考虑一个 $dp$ $f_{(i,S)}$ 表示只考虑前 $i$ 条边,当前图连通的状态为 $S$ 的概率 设这条边没有消失,图的新连通状态为 $T$ 那转移到 $T$ 的概率就是 $(1 - p_i)$ 不变的概率是 $p_i$ 然后一个滚动数组就做完了 然后我们考虑,怎么把“图的连通状态”这个东西状压出来 一个 idea 是,我们可以在状态里记录每个点所处的连通块…
Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 2350  Solved: 1138[Submit][Status][Discuss] Description 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值.作为计算机竞赛教练的scp大老板,想知道如何分配可以使得全班的…
因为垃圾电脑太卡了就重开了一个... 前传:多项式Ⅰ u1s1 我预感还会有Ⅲ 多项式基础操作: 例题: 26. CF438E The Child and Binary Tree 感觉这题作为第一题还蛮合适的( 首先我们设 \(f_i\) 为权值之和为 \(i\) 的符合要求的二叉树的个数. 显然可以枚举根节点的权值.左子树的权值之和进行转移. 也就是 \(f_i=\sum\limits_{x\in S}\sum\limits_{y=0}^{i-S}f_yf_{i-x-y}\) 如果我们记 \(…
第三波,走起~~ FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅰ FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅱ 单位根反演 今天打多校时 1002 被卡科技了--赛场上看出来是个单位根反演但不会,所以只好现学这东西了( 首先你得知道单位根是什么东西,对于 \(n\) 次方程 \(x^n-1=0(x\in\mathbb{C})\),在复数域上有 \(n\) 个根,其对应到复平面上就是单位圆的 \(n\) 等分点,我们将这些单位根从 \(x\) 轴正半轴开始顺时针依次…
洛谷 Codeforces 思路 看到计数和\(998244353\),可以感觉到这是一个DP+生成函数+NTT的题. 设\(s_i\)表示\(i\)是否在集合中,\(A\)为\(s\)的生成函数,即\(A(x)=\sum_n s_nx^n\). 设\(f_n\)为有\(n\)分时二叉树的个数. 考虑枚举左子树大小和根节点权值,得到 \[ f_n=[n=0]+\sum_{i=1}^{mx} s_i \sum_{j=0}^{n-i} f_jf_{n-i-j} \] 然后记\(F(x)\)为\(f\…
数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群) 因为不会做目录所以请善用ctrl+F 本来想的是笔记之类的,写着写着就变成了资源整理 一些有的没的的前置 导数 \(f'(x)=\lim\limits_{\triangle x\rightarrow 0}\frac{f(x+\triangle x)-f(x)}{\triangle x}\) \(\sin x:\cos x\) \(\cos x:-\sin x\) \(\ln x:\frac{…
[CF438E]The Child and Binary Tree(多项式运算,生成函数) 题面 有一个大小为\(n\)的集合\(S\) 问所有点权都在集合中,并且点权之和分别为\([0,m]\)的二叉树的个数. \(n,m<=10^5\) 题解 设\(f(i)\)表示点权和为\(i\)的二叉树个数,\(c(i)\)是集合中数的生成函数,那么我们可以得到 \[f(n)=\sum_{i=1}^{n}c(i)\sum_{j=0}^{n-i}f(j)f(n-i-j)\] 显然有\(f(0)=1\) 构…
本博客部分内容参考:<算法竞赛进阶指南> 一.区间DP 划重点: 以前所学过的线性DP一般从初始状态开始,沿着阶段的扩张向某个方向递推,直至计算出目标状态. 区间DP也属于线性DP的一种,它以“区间长度”作为DP的“阶段”,使用两个坐标(区间的左.右端点)描述每个维度.在区间DP中,一个状态由若干个比它更小且包含于它的区间所代表的状态转移而来,因此区间DP的决策往往就是划分区间的方法.区间DP的初态一般就由长度为1的“元区间”构成. 下面介绍一道经典题:石子合并 题目描述: 设有N堆石子排成一…
提示: 本文并非严谨的数学分析,有很多地方是自己瞎口胡的,仅供参考.有错误请不吝指出 :p 1. 群 1.1 群的概念 群 \((S,\circ)\) 是一个元素集合 \(S\) 和一种二元运算 $ \circ $ 的合称,其满足以下性质. 封闭性 对于 \(\forall a,b \in S\) , \(\exist c \in S\) 使得 \(c = a \circ b\) 结合律 对于 \(\forall a,b,c \in S\) , \(a \circ (b \circ c) = (…
什么是集合(collection)? 提供了一种结构化组织任意对象的方式,从.NET 的角度看,所谓的集合可以定义为一种对象,这种对象实现一个或者多个System.Collections.ICollection. System.Collections.IDictionary和System.Collections.IList接口.这一定义把 System.Collections名称空间中的“内置”集合划分成了三种类别: *  有序集合:仅仅实现ICollection接口的集合,在通常情况下,其数据…
Senior Pan Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1462    Accepted Submission(s): 573 Problem Description Senior Pan fails in his discrete math exam again. So he asks Master ZKC to g…
题目链接:http://icpc.njust.edu.cn/Problem/Pku/1182/ 题意:给出动物之间的关系,有几种询问方式,问是真话还是假话. 定义三种偏移关系: x->y 偏移量0时 x和y同类 x->y 偏移量1时 x被y吃 x->y 偏移量2时 x吃y 定义 rela[x]=rx->x; 如x,y不在同一个集合中, 由rx->ry=rx->x + x->y + y->ry=(rx->x)+(x->y)-(ry->y)可得…
目录 1. 题目来源 2. 普通方法 1. 思路 2. 代码 3. 运行结果 3. DFS算法 1. 概念 2. 解题思路 3. 代码 4. 运行结果 4. 对比 1. 题目来源 牛客网,集合的所有子集(一) https://www.nowcoder.com/practice/c333d551eb6243e0b4d92e37a06fbfc9 2. 普通方法 1. 思路 数学上排列组合中的组合,从N个元素的集合中拿出M(0≤ M ≤ N)个元素的可能数,标记为 .M从0开始遍历到N,就是所求的所有…
组合数学的实质还是DP,但是从通式角度处理的话有利于FFT等的实现. 首先推荐$Candy?$的球划分问题集合: http://www.cnblogs.com/candy99/p/6400735.html 以下部分节选自 http://blog.csdn.net/sr_19930829/article/details/40888349 第一类Stirling数 定理:第一类Stirling数$s(p,k)$计数的是把p个对象排成k个非空循环排列的方法数. 证明:把上述定理叙述中的循环排列叫做圆圈…
(要写CTSC的时候才想起来没写WC2018,那就粗略回顾一下吧hhhhh) WC 2018(简略版): 大概和 一个宁夏和一个天津的大哥一个宿舍hhhh,字典序分宿舍真是奇妙. WC讲课真的不是人听的,感觉一直划水hhhh..... 中间有一天还是生日,草草的过了,蛋糕都没有QWQ 试机的时候才想起来...以后全国的比赛都是 NOI Linux 啊(作为SD选手的天然劣势),我以前用都没用过,这.... 试机现场学,,发现根本用不6,那比赛只能划水了啊QWQ 比赛现场接着学Linux,于是就有…