2016"百度之星" - 初赛(Astar Round2B)

Posted iEdson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016"百度之星" - 初赛(Astar Round2B)相关的知识,希望对你有一定的参考价值。

1003.杨辉三角+逆元

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <stack>
#include <string>
#include <queue>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;

//#define EdsonLin

#ifdef EdsonLin
#define debug(...) fprintf(stderr,__VA_ARGS__)
#else
#define debug(...)
#endif // EdsonLin

typedef long long ll;

const ll inf = (1ll)<<60;
const int MAXN = 2e5+10;
const ll MOD = 1000000007;



ll fac[MAXN],ifac[MAXN];

ll qp(ll base,ll n){
    ll ans = 1;
    while(n){
        if(n&1)ans = ans*base%MOD;
        n /= 2;
        base = base*base%MOD;
    }
    return ans;
}

void init(){
    fac[0] = 1;
    for(int i=1;i<MAXN;i++)
        fac[i] = fac[i-1]*i%MOD;
    for(int i=0;i<MAXN;i++)
        ifac[i] = qp(fac[i],MOD-2);
}

int main(){
    #ifdef EdsonLin
    //freopen("1.in","r",stdin);
    //freopen("1.out","w",stdout);
    int _time_jc = clock();
    #endif // EdsonLin
    init();
    int n,m;
    while(cin>>n>>m){
        if(n<m)swap(n,m);
        n = m+n-4;
        m -= 2;
        ll ans = fac[n]%MOD*ifac[m]%MOD*ifac[n-m]%MOD;
        printf("%lld\\n",ans);
    }
    #ifdef EdsonLin
        debug("time: %d\\n",int(clock()-_time_jc));
    #endif // EdsonLin

    return 0;
}
View Code

 

以上是关于2016"百度之星" - 初赛(Astar Round2B)的主要内容,如果未能解决你的问题,请参考以下文章

2016"百度之星" - 初赛(Astar Round2B)

2016"百度之星" - 初赛(Astar Round2A)

2016"百度之星" - 初赛(Astar Round2B)

2016"百度之星" - 初赛(Astar Round2A)

2016"百度之星" - 初赛(Astar Round2B)

2016"百度之星" - 初赛(Astar Round2A)All X(数学 矩阵)