首页 > 其他分享 >lgP3807 lucas定理计算组合数

lgP3807 lucas定理计算组合数

时间:2024-03-10 20:22:45浏览次数:16  
标签:return lucas int 定理 lgP3807 fac ifac

有T次询问,每次给出整数n,m,p,计算C(n+m,n)%p的值。输入保证p为质数。
1<=n,m,p<=1E5; 1<=T<=10

n较大,p较小且为质数时,可以用lucas定理来计算组合数:lucas(n,k,p) = lucas(n/p,k/p,p) * C(n%p,k%p,p)

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,b) for(int i=a; i<=b; i++)
#define per(i,a,b) for(int i=b; i>=a; i--)

const int Z = 100000;
int fac[Z+1], ifac[Z+1];
int power(int a, int b, int p) {
    int r = 1;
    for (int t = a; b; b /= 2) {
        if (b & 1) r = r * t % p;
        t = t * t % p;
    }
    return r % p;
}
int comb(int n, int k, int p) {
    if (k > n) return 0;
    return fac[n] * ifac[k] % p * ifac[n-k] % p;
}
int lucas(int n, int k, int p) {
    if (k == 0) return 1;
    return lucas(n/p, k/p, p) * comb(n%p, k%p, p) % p;
}
void solve() {
    int n, m, p;
    cin >> n >> m >> p;
    fac[0] = 1;
    rep(i,1,p-1) fac[i] = fac[i-1] * i % p;
    ifac[p-1] = power(fac[p-1], p-2, p);
    per(i,0,p-2) ifac[i] = ifac[i+1] * (i+1) % p;
    cout << lucas(n+m, n, p) << "\n";
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    int t = 1; cin >> t;
    while (t--) solve();
    return 0;
}

标签:return,lucas,int,定理,lgP3807,fac,ifac
From: https://www.cnblogs.com/chenfy27/p/18064733

相关文章

  • 拓展中国剩余定理(EXCRT)
    普通的CRT只能处理模数两两互质的情况,而EXCRT可以求得任意情况下同余方程组的通解。思想:把两个同余方程合并成一个,直到剩下一个。考虑两个同余方程\(x\equivp_1\pmod{m_1},x\equivp_2\pmod{m_2}\)。则\(x=p_1+m_1A=p_2+m_2B\)。移项得\(m_1A-m_2B=p_2-p_1\)。这是......
  • 初三组合恒等式和二项式定理练习 题解
    A.多项式推柿子:\[\begin{aligned}&\sum\limits_{k=0}^{n}b_{k}(x-t)^{k}\\=&\sum\limits_{k=0}^{n}b_{k}\sum\limits_{i=0}^{k}\binom{k}{i}x^{i}(-t)^{k-i}\\=&\sum\limits_{0\leqslanti\leqslantk\leqslantn}\binom{k}{i}b_{......
  • 为什么抽样定理是两倍的关系?
     满足不重叠的条件第二个周期的最小值大于第一个周期的最大值所以Ws-Wm>Wm 必须要带限信号要恢复要框柱一个有限的图形 低通 截取一个,红色的频率要求 ......
  • SDOI2014重建-矩阵树定理、概率
    link:https://www.luogu.com.cn/problem/P3317给一张无向图,每条边有一定概率连通,问整张图恰好构成一棵\(n\)个点的树的概率。输出实数。\(1<n\leq50\)这种问题通常会试着写出来:\[ans=\sum_{T}(\prod_{e\inT}p_e)(\prod_{e\not\inT}(1-p_e))=\prod_{e\inE}(1-p_e)\su......
  • (数论)裴蜀定理
    裴蜀定理内容:${ax+by=c,x\inZ^*,y\inZ^*}$成立的充要条件是${\gcd(a,b)|c}$。$Z^*$表示正整数集。 设${s=\gcd(a,b)}$,显然${s|a}$,并且${s|b}$又因为${x,y\inZ^*}$所以${s|ax,s|by}$显然要使得之前的式子成立,则必须满足$c$是$a$和$b$的公约数的倍数又因为$x$和$y$是......
  • 矩阵树定理
    记结论如果有一条\((i,j)\)的边无向图生成树计数设\(D\)为度数矩阵,\(A\)为邻接矩阵。那么令\(L=D-A\)。则生成树为\(L\)去掉任意一行一列的\(Det(L)\)。mat[i][i]++,mat[j][j]++,mat[i][j]--,mat[j][i]--有向图外向树计数设\(D\)为入度矩阵,\(A\)为邻接矩......
  • 鞅与停时定理
    好高妙!大致思想是给每个局面构造一个势能函数\(F(a_1,a_2,\ldots,a_n)\),使得\(\sumE(F(a'_1,a'_2,\ldots,a'_n))-E(F(a_1,a_2,\ldots,n))=-1\),其中\(a'\)取遍\(a\)的后继状态。这样我们就能直接用终态的势能函数减去初始态的势能函数计算期望,即答案为\(E(S)......
  • 【计算机网络】物理层重要公式:奈氏准则&香农定理
    奈氏准则&香农定理失真影响失真程度的因素:1.码元传输速率2.信号传输距离3.噪声干扰4.传输媒体质量码间串扰码间串扰指接收端收到的信号波形失去了码元之间清晰界限的现象。信道带宽:最高频-最低频。超过的部分发生码间串扰,小于的部分发生失真?奈氏准则奈氏准则在理想......
  • 数学笔记(1)-勾股定理与勾股数
    勾股定理,是一个基本的几何定理,指直角三角形的两条直角边的平方和等于斜边的平方。中国古代称直角三角形为勾股形,并且直角边中较小者为勾,另一长直角边为股,斜边为弦,所以称这个定理为勾股定理,也有人称商高定理。勾股定理现约有500种证明方法,是数学定理中证明方法最多的定理之一。勾......
  • 矩阵树定理
    ex矩阵树定理当边带权时,图的拉普拉斯矩阵对角线为与其相连的边权和,\(i,j(i\neqj)\)则为\(i,j\)的边权\(\times(-1)\)然后它的行列式即为树的方案树行列式把矩阵高斯消元后,得到上三角矩阵,主对角线的值的乘积即为行列式初等变换交换两行,行列式乘-1将某行乘k,行列式乘k将第i......