基本组合数

Posted zero_orez6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本组合数相关的知识,希望对你有一定的参考价值。

组合数模板

C n m = C n − 1 m − 1 + C n m − 1 = n ! m ! ∗ ( n − m ) ! C_n^m=C_{n-1}^{m - 1}+C_n^{m - 1}=\\frac{n!}{m!*(n-m)!} Cnm=Cn1m1+Cnm1=m!(nm)!n!

#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int mod=1e9+7;
const int MAXN=200000;
LL fact[MAXN],inv[MAXN],factinv[MAXN];
LL C(LL n,LL m)
{
	return fact[n]*factinv[m]%mod*factinv[n-m]%mod;
}
int main()
{
	LL n,m;
	fact[0]=inv[0]=factinv[0]=1;
	fact[1]=inv[1]=factinv[1]=1;
	for(int i=2;i<MAXN;i++)
	{
		fact[i]=(fact[i-1]%mod*i%mod)%mod;
		inv[i]=(mod-mod/i)*inv[mod%i]%mod;
		factinv[i]=factinv[i-1]*inv[i]%mod;
	} 
	cin>>n>>m;
	cout<<C(n,m)<<endl;
	return 0;
}

以上是关于基本组合数的主要内容,如果未能解决你的问题,请参考以下文章

Relay.js 没有正确解析组合片段

基本组合数

如何组合绑定片段而不将它们包装在 XML 文字中

LAMP的基本配置

48个值得掌握的JavaScript代码片段(上)

小球与盒子(组合数学基本模板)