zoukankan      html  css  js  c++  java
  • 蓝桥杯 包含子集

    问题描述

      一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得它们的交集的元素个数为K,求取法的方案数,答案模1000000007

    输入格式

      输入一行两个整数NK

    输出格式

      输出一个整数表示答案。

    样例输入

    3 2

    样例输出

    6

    #include<stdio.h>
    #include<math.h>
    int p(int n,int k){
        int f=k;
        for(int i=1;i<f;i++){
            n=n*(n-1);
            k=k*(k-1);
        }
        return n/k;
    }
    void f(int n,int k){
        //选取其中 K个元素,取法总数 CnK
        int m=p(n,k);
        //其余元素取或者不取的所有取法 
        int m1=pow(2,(n-k)); 
        printf("%d",m*m1);
    }
    int main(){
        f(3,2);
        return 0;
    } 
  • 相关阅读:
    STL next_permutation 全排列
    日期问题
    兰顿蚂蚁
    矩阵翻硬币
    数学问题-排列组合
    h5css3_03练习
    h5css3_03
    h5css3_02练习
    h5css3_02
    h5c3_01练习
  • 原文地址:https://www.cnblogs.com/sky-z/p/4415361.html
Copyright © 2011-2022 走看看