组合数计算(不爆 LL 时)

 参考:大数量级组合数的快速计算方法

ll C(int n,int m)
{
	if(m>n) return 0;
	double sum=0; // ln( C(n,m) )
	for(int i=m+1;i<=n;i++) sum+=log(i);
	for(int i=1;i<=n-m;i++) sum-=log(i);
	ll ans=(ll)(exp(sum)+0.5);
	return ans;
}

  

原文地址:https://www.cnblogs.com/liuyongliu/p/10308496.html