随笔分类 - 线性代数 多项式运算
摘要:【题意】求n个点的带标号无向连通图个数 mod 1004535809。n<=130000。 【算法】动态规划+多项式求逆 【题解】设$g_n$表示n个点的无向图个数,那么显然 $$g_n=2^{\frac{n(n-1)}{2}}$$ 设$f_n$表示n个点的无向连通图个数,通过枚举1号点所属连通块大
阅读全文
摘要:【题意】给定只含'a'和'b'字符串S,求不全连续的回文子序列数。n<=10^5。 【算法】FFT+回文串 【题解】不全连续的回文子序列数=回文子序列总数-回文子串数。 回文子串数可以用回文串算法(Manacher,PAM,二分+hash)轻松计算。 设f[i]表示以i为对称中心的对称字符对数,那么
阅读全文
摘要:【题意】给定长度为m的匹配串B和长度为n的模板串A,求B在A中出现多少次。字符串仅由小写字母和通配符" * "组成,其中通配符可以充当任意一个字符。n<=3*10^5。 【算法】FFT 【题解】假设模板串的数组A用0~26代表所有字符,0为通配符,匹配串的数组B同理,那么用表示差异的经典套路: $$
阅读全文
摘要:【题目】F - Many Easy Problems 【题意】给定n个点的树,定义S为大小为k的点集,则f(S)为最小的包含点集S的连通块大小,求k=1~n时的所有点集f(S)的和取模924844033。n<=2*10^5。 【算法】排列组合+NTT 【题解】考虑每个点只会在k个点都在其一个子树时无
阅读全文
摘要:【题意】给定n,求Σi=0~nΣj=1~i s(i,j)*2^j*j!,n<=10^5。 【算法】生成函数+排列组合+多项式求逆 【题解】参考: [BZOJ4555][Tjoi2016&Heoi2016]求和-NTT-多项式求逆 $ans=\sum_{i=0}^{n}\sum_{j=0}^{i}s(
阅读全文
摘要:【题意】给定一个[0,m-1]范围内的数字集合S,从中选择n个数字(可重复)构成序列。给定x,求序列所有数字乘积%m后为x的序列方案数%1004535809。1<=n<=10^9,3<=m<=8000,m为素数,1<=x<=m-1。(个人认为题意修改错误) 【算法】NTT+生成函数+离散对数+快速幂
阅读全文
摘要:【题意】给定n个物品,价值为$a_i$,物品价格互不相同,求选一个或两个或三个的价值为x的方案数,输出所有存在的x和对应方案数。$ai<=40000$。 【算法】生成函数+FFT 【题解】要求价值为x的方案数,就定义价值为“大小”(即指数),方案数为“元素个数”(即系数),物品为“选择项”(即多项式
阅读全文
摘要:【参考】「ZJOI2014」力 - FFT by menci 【算法】FFT处理卷积 【题解】将式子代入后,化为Ej=Aj-Bj。 Aj=Σqi*[1/(i-j)^2],i=1~j-1。 令f(i)=qi,g(i)=1/i^2,定义f(0)=g(0)=0(方便卷积)。 Aj=Σf(i)*g(j-i)
阅读全文
摘要:【题意】请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 n < = 10 ^ 5。 a,b中的元素均为小于等于100的非负整数。 【算法】快速傅里叶变换(FFT)处理卷积 【题解】题目要求: $$C_k=\sum_{i=k}^{n-1}A_i*B_{i-
阅读全文
摘要:【快速傅里叶变换】FFT 参考:从多项式乘法到快速傅里叶变换 by miskcoo FFT 学习笔记 by Menci (一)多项式的表示法 系数表示法:f(x)=a[n-1]*x^(n-1)+...+a[0],称为n-1次多项式。 点值表示法:一个n-1次多项式在复数域中有n个根,即n个(x,y)
阅读全文
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡
阅读全文