
数论模板
maze_illusion
这个作者很懒,什么都没留下…
展开
-
高斯消元模板(浮点数)
const double eps = 1e-9;const int maxn = 210;double a[maxn][maxn],x[maxn];int equ,var;int Gauss(){ int k,col,max_r; for ( k=0,col=0 ; k<equ&&col<var ; k++,col++ ) { ...原创 2018-08-26 11:49:50 · 266 阅读 · 0 评论 -
拉格朗日插值模板
拉格朗日根本公式:y=Σ(i=0->n-1)[yk*∏(j!=k)(x-xj)][∏(j!=k)(xj-xk)]拉格朗日插值法求:Σ(i=1->n)ik拉格朗日插值法公式:f(n)=Σ(i=1->k+2)(-1)k-i+2f(i)[Σ(j=1->k+2)(n-j)]/[(n-i)*(i-1)!*(k+2-i)!]int f[maxn],fac[maxn]; ...原创 2018-08-30 09:40:36 · 351 阅读 · 0 评论 -
高斯消元模板(整数)
int Gcd( int a , int b ){ return b==0?a:Gcd( b , a%b ); }int Lcm( int a , int b ){ return a/Gcd( a , b )*b; }int Abs( int a ){ return a<0?-a:a; }int a[maxn][maxn];int x[maxn];int Gauss( int n...原创 2018-07-20 19:40:37 · 418 阅读 · 0 评论 -
大整数质因数分解模板
LL Abs( LL a ){ return a<0?-a:a; }LL Min( LL a , LL b ){ return a<b?a:b; }LL Max( LL a , LL b ){ return a>b?a:b; }LL Gcd( LL a , LL b ){ return b==0?a:Gcd( b , a%b ); }LL arr[5] = { 2,3,...原创 2018-08-25 19:54:10 · 1132 阅读 · 0 评论 -
随机素数测试模板
LL arr[5]={ 2,3,5,233,331 };LL Qmul( LL a , LL b , LL mod ){ LL res = 0; while ( b ) { if ( b&1 ) res = ( res+a )%mod; a = ( a+a )%mod; b = b>...原创 2018-08-24 21:35:41 · 297 阅读 · 0 评论 -
中国剩余定理模板
A[]为互质数组,R[]为余数数组,a1为最终步长,r1为最终最小非负数答案,Gcd是扩展欧几里得,end为true时表示无解bool end = false;LL a1 = A[0],r1 = R[0];for ( int i=1 ; i<m ; i++ ){ LL a2 = A[i],r2 = R[i]; LL c = r2-r1,d,x,y; Gcd...原创 2018-08-24 15:33:41 · 199 阅读 · 0 评论 -
扩展欧几里得模板
d为a,b的最大公因数,x为a(mod)b的逆元:void Gcd( LL a , LL b , LL &d , LL &x , LL &y ){ if ( b==0 ){ d = a; x = 1; y = 0; } else{ Gcd( b , a%b , d , y , x ); y = y-x*(a/b); }} ...原创 2018-08-24 14:57:58 · 200 阅读 · 0 评论 -
整数拆分模板
广义五边形数公式:F(n)=(3*n*n-n)/2广义五边形数下标:1,-1,2,-2,3,-3,。。。整数拆分:P(n) = P(n-F(1))+P(n-F(2))-P(n-F(3))-P(n-F(4))+...+(-1)^((k+1)/2-1)P(n-F(k)),P[0]=1int num[maxn],dp[maxn];for ( int i=1 ; i<maxn ; i...原创 2018-08-27 15:22:27 · 295 阅读 · 0 评论 -
FFT模板
dft等于1时为多项式转化为离散点dft等于-1时为离散点转化为多项式做FFT必须使得n为2的次幂,Get_rev()需提前预处理完毕使用方式(计算多项式乘积):FFT( a , sum , 1 );FFT( b , sum , 1 );for ( int i=0 ; i<sum ; i++ ) a[i] *= b[i];FFT( a , sum , -...原创 2018-07-30 18:37:05 · 256 阅读 · 0 评论 -
NTT模板
const int mod = 1004535809;const int maxn = 262144;const int G = 3;int Qpow( int a , int b , int m ){ if ( b<0 ) { b = -b; a = Qpow( a , m-2 , m ); } int re...原创 2018-07-30 20:48:59 · 279 阅读 · 0 评论 -
辛普森积分公式
f()为被积函数double simpson( double l , double r ){ double mid = (l+r)/2; return (f(l)+4*f(mid)+f(r))*(r-l)/6.0;}double asr( double l , double r ){ double mid = (l+r)/2; double res ...原创 2018-08-08 17:46:08 · 2305 阅读 · 0 评论 -
高斯消元模板(取余方程组)
const int maxn = 110;const int mod = 2;int a[maxn][maxn],x[maxn],free_x[maxn],free_num;int Qpow( int a , int b ){ int res = 1; while ( b ) { if ( b&1 ) res = ...原创 2018-08-26 16:14:41 · 442 阅读 · 0 评论 -
Lucas定理模板
p为素数,a,b为正整数,并且a = akp^k+ak-1p^k-1+...+a1p+a0b = bkp^k+bk-1p^k-1+...+b1p+b0所有0<=ai,bi<=p-1C(a,b) = C(ak,bk)*C(ak-1,bk-1)*...*C(a0,b0)%pfac表示阶乘,inv表示逆元LL Lucas( LL a , LL b ){ L...原创 2018-07-21 14:19:38 · 160 阅读 · 0 评论