
多项式运算
Neo__Z
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高精度乘法 普通(n^2)+fft(nlogn)
高精度乘法核心为ci=∑aj⋅bi−j+1c_i=\sum a_j·b_{i-j+1}普通算法时间复杂度为O(n)O(n). 又由于是卷积形式,可用fft优化为O(nlogn)O(nlogn)普通版#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>using name原创 2017-07-27 19:52:21 · 1326 阅读 · 2 评论 -
BJ模拟 生日礼物【NTT+斯特林数+组合数学】
题目描述:今天是Jane的生日。Alice和Bob都有一些糖果,于是这两个人就去买了N个白色的盒子去包装这些糖果作为Jane的生日礼物。他们将随机地把这些盒子分成两堆,一堆给Alice,一堆给Bob(每堆至少有一个盒子)。我们知道Alice有 N1 个不同的糖果,Bob有 N2 个相同的糖果(由于Bob很懒,所以他直接买了相同的糖果),然后Alice买的糖果和Bob买的糖果是完全不一样的。...原创 2018-04-28 11:56:04 · 284 阅读 · 0 评论 -
BJ模拟 等差数列【分块+FFT】
题目描述:给定nnn个整数a1,a2,a3,...,ana1,a2,a3,...,ana_1,a_2,a_3,...,a_n,求有多少个三元组(i,j,k)(i,j,k)(i,j,k)满足1≤i<j<k≤n1≤i<j<k≤n1≤iaj−ai=ak−ajaj−ai=ak−aja_j−a_i=a_k−a_j 。 1≤n≤100000,1≤ai≤300001≤n≤10000...原创 2018-05-05 11:59:13 · 396 阅读 · 0 评论 -
bzoj5300: [Cqoi2018]九连环【FFT+高精度】
传送门解题思路:容易发现fi=fi−1+2fi−2+1=2fi−1+(i%2)fi=fi−1+2fi−2+1=2fi−1+(i%2)f_i=f_{i-1}+2f_{i-2}+1=2f_{i-1}+(i\%2),但还不够。 又发现fi=⌊2i+13⌋fi=⌊2i+13⌋f_i=\lfloor\frac{2^{i+1}}{3}\rfloor,直接FFT+高精度即可。#include&...原创 2018-05-04 16:00:02 · 457 阅读 · 0 评论 -
bzoj5250 九省联考 秘密袭击【树上背包+拉格朗日插值+线段树合并】
解题思路:第一个想法是枚举第kkk大的值,把大于的记为1,小于的记为0,问题就转化为树上联通块大小等于kkk的个数。稍微转化一下,我们统计树上联通块第kkk大大等于iii的个数,不妨记为aiaia_i,那么 ans=∑i=1Wi(ai−ai+1)ans=∑i=1Wi(ai−ai+1)ans=\sum\limits_{i=1}^Wi(a_i-a_{i+1})而因为这样计算每个大等于ii...原创 2018-04-18 17:17:11 · 835 阅读 · 0 评论 -
bzoj4944: [Noi2017]泳池【概率dp+特征多项式】
题目大意:有一个1001×n1001×n1001×n的的网格,每个格子有qqq的概率是安全的,1−q1−q1−q的概率是危险的。 定义一个矩形是合法的当且仅当: 1.这个矩形中每个格子都是安全的 2.必须紧贴网格的下边界 问你最大的合法子矩形大小恰好为kkk的概率是多少。解题思路:首先求恰好为kkk的概率一般转化为求≤k≤k\le k的概率减去≤k−1≤k−1\le k-1...原创 2018-04-09 20:05:48 · 704 阅读 · 0 评论 -
BJ模拟 装饰地板【状压dp+特征多项式优化矩阵快速幂】
题目大意:给一个m∗nm∗nm*n的地板,有s1s1s1种1×21×21\times2的横地砖,s2s2s2种2×12×12\times 1的竖地砖,问有多少种铺满的方式,对998244353取模。 (m≤6,n≤102501,s1,s2≤1e9)(m≤6,n≤102501,s1,s2≤1e9)(m\le 6,n\le 10^{2501},s1,s2\le 1e9)解题思路:看到...原创 2018-03-15 20:18:22 · 354 阅读 · 0 评论 -
BJ模拟 数列【特征多项式and生成函数】
题目大意:有数列:fm,n=⎧⎩⎨⎪⎪an,n=1...m∑k=1m(a−1)fm,n−k−1(1)(1)fm,n={an,n=1...m∑k=1m(a−1)fm,n−k−1\begin{align}f_{m,n}=\begin{cases}a^n,n=1...m\\\sum\limits_{k=1}^m(a-1)f_{m,n-k-1}\end{cases}\end{align}...原创 2018-03-15 10:53:03 · 495 阅读 · 1 评论 -
bzoj5004 开锁魔法II【概率dp&&生成函数】
题目大意:给一个n的点的图,每个点只有一条出边和入边(组成了若干环),现在从中选k个点,问每个环至少选中一个点的概率。 n、k<=300;解题思路:大概的思路是求可行方案数除以总方案数(nk)(nk)\binom{n}{k}。设f[i][j]f[i][j]f[i][j]表示前i个环选了j个点的方案数,则有f[i][j]=f[i−1][j−s]∗(size[i]s)f[i][...原创 2018-03-15 10:08:13 · 381 阅读 · 0 评论 -
bzoj4161: Shlw loves matrixI【特征多项式优化常系数齐次线性递推模板】
Description给定数列 {hn}前k项,其后每一项满足 hn = a1*h(n-1) + a2*h(n-2) + … + ak*h(n-k) 其中 a1,a2…ak 为给定数列。请计算 h(n),并将结果对 1000000007 取模输出。Input第 1 行包含两个整数 n,k 第 2 行包含 k 个整数 a1,a2…ak 第 3 行包含 k 个整数h[0],h[...原创 2018-03-14 21:00:35 · 1038 阅读 · 0 评论 -
多项式求逆元模板
多项式求逆元具体概念及求法可见这里,本文主要提供模板。本文提供的是模998244353下保留0~nn次项,即mod(xn+1)mod(x^{n+1})意义下的模板。#include#define ll long longusing namespace std;int getint(){ int i=0,f=1;char c; for(c=getchar();c!=原创 2018-01-15 22:54:50 · 2508 阅读 · 0 评论 -
bzoj3456 城市规划【生成函数+多项式求逆元】
解题思路我们设f(n)f(n)表示nn个点组成有编号无向连通图的方案数,但不是很好直接求。那再设g(n)g(n)表示nn的点组成有编号无向图的方案数,由于无向图是由多个连通子图构成,那么为了避免重复计数,我们枚举1号点所在连通块大小,其他边随便连,即可得到dp方程:g(n)=∑i=1nCi−1n−1f(i)∗g(n−i)g(n)=\sum\limits_{i=1}^nC_{n-1}原创 2018-01-16 20:47:43 · 350 阅读 · 0 评论 -
bzoj5093 图的价值【第二类斯特林数+NTT】
解题思路:考虑直接枚举每个点连的边,图中其余点之间随便连,那么直接推式子:ans=n∗2C2n−1∑i=0n−1Cin−1ikans=n*2^{C_{n-1}^2}\sum\limits_{i=0}^{n-1}C_{n-1}^ii^k不妨用nn表示n−1n-1,而iki^k可用第二类斯特林数表示,则有:ans=(n+1)∗2C2n∑i=0nCin∑j=0iSjkCjij!ans=(原创 2018-01-16 22:57:00 · 869 阅读 · 0 评论 -
uoj34 多项式乘法【FFT or NTT】
解题思路:FFT、NTT模板题。FFT代码:#include#define ll long longusing namespace std;int getint(){ int i=0,f=1;char c; for(c=getchar();c!='-'&&(c'0'||c>'9');c=getchar()); if(c=='-')f=-1,c=ge原创 2017-12-03 15:36:03 · 411 阅读 · 0 评论 -
loj#2541. 「PKUWC 2018」猎人杀【容斥+概率dp+生成函数+分治FFT】
传送门解题思路:思路巧妙……原题中每轮概率都在变化,一脸不可做,但注意到对问题的转化: 我们杀人后将其打上标记,但还是可以以他为目标重复选,直到选到一个未打标记的人。 这和原问题等价,而且这样每轮选中每人的概率都不变。考虑容斥,枚举强制在1号后面死的人,即1号至少在这些人前面,令 A=∑wiA=∑wiA=\sum w_i,SSS 为枚举到的人的 wiwiw_i 之和,ttt 为...原创 2018-05-29 15:14:59 · 1796 阅读 · 0 评论