• ZOJ 3556 How Many Sets I


    How Many Sets I

    Time Limit: 2 Seconds      Memory Limit: 65536 KB

    Give a set S, |S| = n, then how many ordered set group (S1, S2, ..., Sk) satisfies S1 ∩ S2 ∩ ... ∩ Sk = ∅. (Si is a subset of S, (1 <= i <= k))

    Input

    The input contains multiple cases, each case have 2 integers in one line represent n and k(1 <= k <= n <= 231-1), proceed to the end of the file.

    Output

    Output the total number mod 1000000007.

    Sample Input

    1 1
    2 2
    

    Sample Output

    1
    9

    题意:

    个数为n的集合,从中选出K个子集使得他们的交集为空的个数。

      子集可以重复选


    考虑1个元素
    它在k子集里的数目为2^k
    其中有一种是k个子集都有这个元素,他们这k个子集的交集就不为空
    所以1个元素k个子集交集为空的数目 有(2^k)-1 种
    那么n个元素就是((2^k)-1)^n


    #include<cstdio>
    using namespace std;
    typedef long long LL;
    const LL mod=1000000007;
    LL n,k;
    LL pow(LL a,LL b)
    {
        LL r=1;
        while(b)
        {
            if(b&1) r*=a,r%=mod;
            b>>=1; a*=a; a%=mod;
        }
        return r;
    }
    int main()
    {
        while(scanf("%lld%lld",&n,&k)!=EOF) 
        printf("%lld
    ",pow(pow(2,k)-1,n));
    }

  • 相关阅读:
    求成绩表中各门课程前三名
    GridView绑定时通过RowDataBound事件获取数据源列值
    在运行时获取ibatIS执行的sql
    Java基础:数组Array转成List的几种方法
    python之格式化输出
    python之集合【set】
    每日日报
    每日日报
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/7356303.html
Copyright © 2020-2023  润新知