- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 预处理伯努利数(多项式求逆)
伯努利数定义: 递推式: 将e^t展开得到: 然后就可以利用多项式逆元求出伯努利数了。。 多项式逆元就是给定一个n次多项式A(x),求另一个多项式B(x),满足 其中mod x^n表示多项式除以x^n剩余的多项式,这里可以看成做卷积之后去掉大于等于n次的项。 假设已经求得B(x)满足: 要求另一个B'(x)满足: 详情见: Inverse Element of Pol
2015-09-22 23:02:23 2923
原创 (模板) NTT long long 版
const LL P = 50000000001507329LL; //190734863287 * 2 ^ 18 + 1 //const int P = 1004535809LL; //479 * 2 ^ 21 + 1 //const int P = 1004535809; // 119 * 2 ^ 23 + 1 const int G = 3; LL a[N], b[N]; LL wn[25
2015-09-22 13:34:36 1822
原创 (模板)NTT
//const LL P = 50000000001507329LL; //190734863287 * 2 ^ 18 + 1 常数巨大 //const int P = 1004535809LL; //479 * 2 ^ 21 + 1 const int P = 1004535809; // 119 * 2 ^ 23 + 1 const int G = 3; int a[N], b[N]; in
2015-09-22 13:15:28 1283
原创 (模板)FFT
const double Pi = acos(-1.0); struct complex { double r, i; complex(double r = 0, double i = 0):r(r), i(i) {} complex operator + (const complex &ot) const { return complex(r + ot.
2015-09-22 13:13:12 630
原创 ZOJ 3896 Permutation (JAVA IO, CRT)
题意: 给定n的两个排列A和B,还有置换C,问最少需要对A进行多少次置换C才能变成B,不可能则输出Impossible 思路: 思路是比较好想的,难度在于怎么实现。。 对A中每个数A[i],求出它需要经过多少次置换能变成B[i],如果变不了就Impossible。 然后就是用CRT来合并就是答案了。 涨姿势了。。java的输入挂。。 import java.math.*; impor
2015-09-19 00:13:12 438
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人