Link Search Menu Expand Document
あるまかんライブラリ

:heavy_check_mark: binomial() (二項係数 $O(K)$)
(Math/Combinatorics/binomial-O(K).cpp)

Verified with

Code

#pragma once
#include <cstdint>

/**
 * @brief binomial() (二項係数 $O(K)$)
 */
template <class T>
T binomial(int64_t n, int k) {
    if (k < 0 || n < k) return 0;
    T nume = 1, deno = 1;
    for (int i = 1; i <= k; ++i) {
        nume *= n - i + 1;
        deno *= i;
    }
    return nume / deno;
}
#line 2 "Math/Combinatorics/binomial-O(K).cpp"
#include <cstdint>

/**
 * @brief binomial() (二項係数 $O(K)$)
 */
template <class T>
T binomial(int64_t n, int k) {
    if (k < 0 || n < k) return 0;
    T nume = 1, deno = 1;
    for (int i = 1; i <= k; ++i) {
        nume *= n - i + 1;
        deno *= i;
    }
    return nume / deno;
}
Back to top page