逆元求组合数

原创 2018年04月15日 13:39:44
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll inf = 0x3f3f3f3f3f3f3f3f;
#define show(a) cout<<#a<<" = "<<a<<endl
#define show2(b,c) cout<<#b<<" = "<<b<<" "<<#c<<" = "<<c<<endl
#define show3(a,b,c) cout<<#a<<" = "<<a<<" "<<#b<<" = "<<b<<" "<<#c<<" = "<<c<<endl
#define show4(a,b,c,d) cout<<#a<<" = "<<a<<" "<<#b<<" = "<<b<<" "<<#c<<" = "<<c<<" "<<#d<<" = "<<d<<endl
const int maxn = 100005;
#define LOCAL
const ll mod = 1000000007;

ll jie[maxn+1];
ll in[maxn+1];

ll poww(ll a, ll b) {
	if( b < 0 ) return 0;
    ll ret = 1;  
    a %= mod;  
    while(b) {  
        if (b & 1) ret = (ret * a) % mod;  
        b >>= 1;  
        a = (a * a) % mod;  
    }  
    return ret;  
}

ll inv(ll x) {
	return poww(x, mod - 2);
}

void init() {
	jie[0] = 1;
	for(int i = 1; i <= maxn; i++)
		jie[i] = jie[i-1] * i % mod;

	in[maxn] = inv(jie[maxn]) % mod;
	for(int i = maxn; i > 0; i--)
		in[i-1] = in[i] * i % mod; // (i-1)!'s inv ************
}

ll C(ll a, ll b) { // a * inv(b) % mod;
	if( a < 0 || b > a) return 0;
	// show3(jie[a], in[b], in[a-b]); in[0]=1
	return jie[a] * in[b] % mod * in[a - b] % mod;

	// inv(b!)*inv((a-b)!)
}


int main() {
    C(a, b)
    
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Linfanty/article/details/79948686

组合数取模(逆元+快速幂)

Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu   LightOJ 1067   ...
  • lu_1110
  • lu_1110
  • 2016-08-08 14:24:25
  • 1720

求逆元 求组合数

求一个数的模p(一般为质数)的逆元,
  • guognib
  • guognib
  • 2014-07-30 11:56:28
  • 1812

各种逆元求法 组合数取模 comb (组合数 Lucas)

组合数取模(comb)【问题描述】 计算C(m,n)mod 9901的值 【输入格式】 从文件comb.in中输入数据。 输入的第一行包含两个整数,m和n 【输出格式】 输出到文件comb...
  • w4149
  • w4149
  • 2017-06-02 19:49:18
  • 671

大数组合数取模(逆元+打表)

将阶乘O(n)打表之后C(n,m)便可O(1)求出,除法取模用逆元解决 hdu5698瞬间移动#include using namespace std; const int maxn=200000;...
  • daniel_csdn
  • daniel_csdn
  • 2016-05-23 11:04:43
  • 1262

【noip2011】【数学】计算系数 逆元求组合数

描述 给定一个多项式(ax + by)^k,请求出多项式展开后x^n * y^m项的系数。 输入格式 共一行,包含5个整数,分别为a,b,k,n,m,每两个整数之间用一个...
  • u011327397
  • u011327397
  • 2016-10-15 20:21:48
  • 638

组合数取模之逆元方法+模板

参自: http://www.cnblogs.com/liziran/p/6804803.html https://baike.baidu.com/item/%E8%B4%B9%E9%A9%A...
  • xiaoli_nu
  • xiaoli_nu
  • 2017-10-08 22:15:15
  • 334

hdu5651(乘法逆元&&组合数)

题意:xiaoxin巨从小就喜欢字符串,六年级的时候他就知道了什么是回文串。这时,xiaoxin巨说到:如果一个字符串 SSS 是回文串,那么该字符串从前往后看和从后往前看是一样一样的。 六年级的暑...
  • qq_27599517
  • qq_27599517
  • 2016-03-28 19:36:52
  • 1246

Codeforces 521C 组合数取模(乘法逆元)

【题目链接】 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106914#overview【解题报告】 之前很少遇到组合数取模的问题(...
  • gungnir0711
  • gungnir0711
  • 2016-02-20 18:34:07
  • 775

hdu 5651 (组合数学 + 阶乘求逆元)

xiaoxin juju needs help Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Ja...
  • a73265
  • a73265
  • 2016-03-28 21:36:09
  • 574

hdu 5698 求组合数(逆元+阶乘 递推公式

分析向格子里填数发现,是左斜的杨辉三角,发现规律,其实就是求C(n+m-4,m-2)的组合数 求组合数用逆元+阶乘(递推) #include #include #defin...
  • Jeromiewn
  • Jeromiewn
  • 2017-01-31 14:38:17
  • 516
收藏助手
不良信息举报
您举报文章:逆元求组合数
举报原因:
原因补充:

(最多只允许输入30个字)