cnm
%p
c_n^m\%p
cnm%p
0 ≤m
≤n
≤1000
0\leq m\leq n\leq 1000
0≤m≤n≤
1000
,1 ≤p
≤1e9
1\leq p \leq 1e9
1≤p≤1e
9,直接求
void com(int n,int p)
}}
0≤m
≤n≤1
e18
0\leq m\leq n\leq 1e18
0≤m≤n≤
1e18
,1 ≤p
≤1e6
1\leq p \leq 1e6
1≤p≤1e
6,用盧卡斯定理
ll f[n]; //n為組合數的底數 的範圍
void init(int p)
ll pow_mod(ll a, ll x, int p)
else
} return ret;
} ll lucas(ll n, ll k, int p)
return ret;
}
0≤n
≤1e18
0\leq n\leq 1e18
0≤n≤1e
18,0 ≤m
≤1e6
0\leq m\leq 1e6
0≤m≤1e
6,1≤p≤
1e
91\leq p \leq 1e9
1≤p≤1e
9,用盧卡斯定理
ll quick_mod(ll a, ll b)
b >>= 1;
a = a * a % p;
} return ans;
}
ll c(ll n, ll m)
return ans;
}
ll lucas(ll n, ll m)
對於底數固定的,遞推求所有組合數
c[0]=1;
for(int i=1;i<=n;++i)
c[i]=c[i-1]*(n-i+1)%mod*inv[i]%mod;
0≤m
≤n≤1
e6
0\leq m\leq n\leq 1e6
0≤m≤n≤
1e6,1≤p
≤1e5
1\leq p \leq 1e5
1≤p≤1e
5,p可能為合數。因為p為合數好多東西不能用,所以直接對結果的每個質因子取模,可以避免除法。
nefu628
組合數的求法總結
楊輝三角遞推c i,j c i 1,j c i 1,j 1 題目詳見noip2016d2t1 code for int i 2 i maxn i for int j 2 j c i j c i 1 j c i 1 j 1 k 乘法逆元 a b p a bp 2 p為素數 如果p為素數,那麼k的逆元就...
組合數 求組合數的幾種方法總結
求c n,m mod的方法總結 1.當n,m都很小的時候可以利用楊輝三角直接求。c n,m c n 1,m c n 1,m 1 2.利用乘法逆元。乘法逆元 a b mod a b mod 2 mod為素數。逆元可以利用擴充套件歐幾里德或尤拉函式求得 1 擴充套件歐幾里德 b x p y 1 有解,x...
Numpy 組合陣列的幾種方法
來自 python資料分析基礎教程 numpy 學習指南 第2版 下面將介紹組合陣列的幾種方法 0.建立兩個3 3的陣列 from numpy import a arange 9 reshape 3,3 print a b 2 a print b 得到結果 0 1 2 3 4 5 6 7 8 0 2...