Codeforces Round #593 (Div. 2) B. Alice and the List of Presents

Posted c4lnn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #593 (Div. 2) B. Alice and the List of Presents相关的知识,希望对你有一定的参考价值。

Link
题意:
(n) 种礼物分配给 (m) 个盒子
每种礼物有无限个,每个盒子至多拥有同种礼物一个并保证每种礼物至少被分配一次
思路:
求组合数
(present_1) 总共 (2^{m-1}) 种分法
根据乘法原理 (n)(present) 共有 ({2^{m-1}}^n) 种分法
代码:

#include <bits/stdc++.h>
 
using namespace std;
 
typedef long long ll;
 
const ll mod=1e9+7;
 
int n,m;
 
ll ksm(ll n,ll x)
{
    ll res=1;
    while(x)
    {
        if(x&1) res=res*n%mod;
        n=n*n%mod;
        x>>=1;
    }
    return res;
}
int main()
{
    cin>>n>>m;
    cout<<ksm((ksm(2,m)+mod-1)%mod,n)<<endl;
    return 0;
}

以上是关于Codeforces Round #593 (Div. 2) B. Alice and the List of Presents的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #593 (Div. 2) C. Labs

Codeforces Round #593 (Div. 2) A. Stones

Codeforces Round #593 (Div. 2) B. Alice and the List of Presents

Codeforces Round #329 div2

Codeforces Round #436 E. Fire(背包dp+输出路径)

CodeForces 593D Happy Tree Party