01 2019 档案
摘要:用途 求生成树个数 做法 定义度数矩阵A,A[i][i]为i号点的度数;邻接矩阵B,B[i][j]为点i到j的边数 对于无向图,用A-B,然后随意选一个i,去掉第i行和第i列,它的行列式就是生成树个数 对于有向图,外向树的个数就是把度数矩阵换成入度矩阵;内向树的个数就是换成出度矩阵;删掉的行列一定要
阅读全文
摘要:Miskcoo大佬的多项式全家桶传送门 rvalue大佬的FFT讲解传送门 用途 将多项式快速(nlogn)变成点值表达,或将点值表达快速变回系数表达(逆变换),(多数时候)来达到求卷积的目的 做法 (为了方便,用wn代表n次单位根的ωn) 考虑选取特殊点,并用分治缩小问题规模 首先在多项式高位补零
阅读全文
摘要:用途 快速(O(n3/4logn))地计算一些函数f的前缀和,以及(作为中间结果的)只计算质数的前缀和 一般要求f(p)是积性函数,f(p)是多项式的形式,且f(pk)可以快速计算 做法 首先考虑求出范围内的质数的取值的和 如果有$f(p)=\sum{a_i
阅读全文
摘要:用途 比线性更快(O(n23))地求某些积性函数的前缀和 前置知识:狄利克雷卷积 形如h(n)=∑d|nf(d)g(nd),则称h(n)=f(x)∗g(x) 如果f和g都是积性函数,则卷出的h也是积性函数 可以证明,狄利
阅读全文
摘要:对S建SAM,拿着T在上面跑 跑的时候不仅无法转移要跳parent,转移过去不在范围内也要跳parent(注意因为范围和长度有关,跳的时候应该把长度一点一点地缩) 这样就能得到对于T的每个前缀,它最长的不合法的后缀的长度ill[i] 得到他要去重,以后可以再对T建SAM,然后对于每个节点,$ans+
阅读全文
摘要:首先,让每一个叶节点做一次树根的话,每个路径一定至少有一次会变成直上直下的 于是对于每个叶节点作为根产生的20个trie树,把它们建到同一个广义SAM里 建法是对每个trie dfs去建,last就是父亲的那个节点;每次做一个新trie时,last给成root 然后答案就是每个节点表示的长度和
阅读全文