OVSolitario-io

导航

组合数学初步

组合

对于简单组合问题,直接将其方案计算即可,当一个组合中的元素为0时,它天然的结果为0,会无法组成方案

for(int i = 1; i <= n; ++ i) {//n-2
    for(int j = i + 1; j <= n; ++ j) {//n-1
        for(int k = j + 1; k <= n; ++ k) {
            ++ ans;
        }
    }
}

i,j枚举到n-2和n-1也可

帕斯卡尔三角
帕斯卡尔公式:C(n, m) = C(n - 1, m - 1) + C(n - 1, m);,通过帕斯卡公式可以与处理出一定范围内all组合方案,O(1)的处理查询

即方案 = 选最后一个,从前面选其他 + 不选最后,从前面选all
image

for(int i = 0; i <= n; ++ i) {
    c[i][0] = 1;
    for(int j = 1; j <= i; ++ j) {
        c[i][j] = c[i - 1][j - 1] + c[i - 1][j];
    }
}

posted on 2025-07-16 09:20  TBeauty  阅读(224)  评论(0)    收藏  举报