zoukankan      html  css  js  c++  java
  • 牛客挑战赛33

    牛客挑战赛33

    组合数取模,插板。

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    int n,k;
    ll pow(ll a, ll b, ll m)
    {
        ll ans = 1;
        a %= m;
        while(b)
        {
            if(b & 1)ans = (ans % m) * (a % m) % m;
            b /= 2;
            a = (a % m) * (a % m) % m;
        }
        ans %= m;
        return ans;
    }
    ll inv(ll x, ll p)//x关于p的逆元,p为素数
    {
        return pow(x, p - 2, p);
    }
    ll C(ll n, ll m, ll p)//组合数C(n, m) % p
    {
        if(m > n)return 0;
        ll up = 1, down = 1;//分子分母;
        for(int i = n - m + 1; i <= n; i++)up = up * i % p;
        for(int i = 1; i <= m; i++)down = down * i % p;
        return up * inv(down, p) % p;
    }
    ll Lucas(ll n, ll m, ll p)
    {
        if(m == 0)return 1;
        return C(n % p, m % p, p) * Lucas(n / p, m / p, p) % p;
    }
    int main(){
        ll p=1e9+7;
        cin>>n>>k;
        if(n==0){
           cout<<1<<endl; 
           return 0;
        }
        if(k%2==0)n--,k--; 
        printf("%d
    ",C(n-(k-1)/2-1,(k-1)/2,p)); 
    } 
    作者:wilxx
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    禁止鼠标多次点击选中div中的文字
    深入浅出 Nodejs 学习笔记 1
    svn 树冲突
    nodejs 按行读取 readline
    git版本控制器的基本使用
    规范javascript书写
    media query
    软件工程
    The sixth day
    The fifth day
  • 原文地址:https://www.cnblogs.com/wilxx/p/11700454.html
Copyright © 2011-2022 走看看