CF1236B Alice and the List of Presents
题目描述
Alice 最近收到了许多礼物。于是她决定将这些礼物打包进盒子里,送给她的朋友们。
现在有 $n$ 种礼物。每种礼物都是完全相同的(即无法区分同一种礼物中的两个),不同种类的礼物是不同的(即可以区分不同种类的礼物)。每种礼物的数量都非常多,可以认为 Alice 拥有每种礼物的无限多个。
另外,有 $m$ 个盒子。每个盒子都要送给不同的人,因此盒子两两不同(可以认为每个盒子上都写着 $m$ 个朋友的名字)。例如,把第一种礼物放进第一个盒子但不放进第二个盒子,与把第一种礼物放进第二个盒子但不放进第一个盒子是不同的方案。
Alice 打包礼物时需要遵守以下规则:
- 每个盒子中,每种礼物最多只能放一个,因此每个盒子只能包含不同种类的礼物(即每个盒子包含 $n$ 种礼物的一个子集,允许盒子为空);
- 每种礼物至少要放进某个盒子里。
现在 Alice 想知道,有多少种不同的打包方式。由于答案可能非常大,请你帮她计算方案数,并对 $10^9+7$ 取模。
具体样例和说明见下方。
输入格式
第一行包含两个用空格分隔的整数 $n$ 和 $m$,表示礼物的种类数和盒子的数量($1 \leq n, m \leq 10^9$)。
输出格式
输出一个整数,表示满足 Alice 规则的打包方案数,对 $10^9+7$ 取模。
说明/提示
在第一个样例中,共有七种打包方式:
$\{1\}\{\}\{\}$
$\{\}\{1\}\{\}$
$\{\}\{\}\{1\}$
$\{1\}\{1\}\{\}$
$\{\}\{1\}\{1\}$
$\{1\}\{\}\{1\}$
$\{1\}\{1\}\{1\}$
在第二个样例中,共有九种打包方式:
$\{\}\{1,2\}$
$\{1\}\{2\}$
$\{1\}\{1,2\}$
$\{2\}\{1\}$
$\{2\}\{1,2\}$
$\{1,2\}\{\}$
$\{1,2\}\{1\}$
$\{1,2\}\{2\}$
$\{1,2\}\{1,2\}$
例如,方案 $\{2\}\{2\}$ 是不合法的,因为第一种礼物必须至少放进一个盒子。
由 ChatGPT 4.1 翻译