P8557

炼金术(Alchemy)

题目描述

铃是一个爱玩游戏的女孩子。

她在游戏中想要炼制一种稀有合金 —— 这需要 \(n\) 种金属来合成。

她准备好矿石后建造了 \(k\) 个不同的熔炉,当熔炉启动时,会随机炼出这 \(n\) 种金属中的一些(也可能什么都没有)。

如果把每个熔炉炼出的金属收集起来,有了全部 \(n\) 种金属,就能造出合金了。澪对此很好奇,对铃说:「我考考你,有多少种情况可以炼出合金呢?」这个简单的问题铃很快就会做了,你能求出结果吗?

答案可能很大,请对 \(998244353\) 取模(即除以 \(998244353\) 的余数)后输出。

输入格式

输入一行两个正整数 \(n,k\)

输出格式

输出一行一个整数,表示答案。

样例 #1

样例输入 #1

2 2

样例输出 #1

9

样例 #2

样例输入 #2

4 5

样例输出 #2

923521

样例 #3

样例输入 #3

233 123

样例输出 #3

81633405

提示

【样例一解释】
对于所有成功情况,两个熔炉中的金属如下表:

一号 二号
\(\varnothing\) \(\{1,2\}\)
\(\{1\}\) \(\{2\}\)
\(\{1\}\) \(\{1,2\}\)
\(\{2\}\) \(\{1\}\)
\(\{2\}\) \(\{1,2\}\)
\(\{1,2\}\) \(\varnothing\)
\(\{1,2\}\) \(\{1\}\)
\(\{1,2\}\) \(\{2\}\)
\(\{1,2\}\) \(\{1,2\}\)

一共 \(9\) 种,因此答案为 \(9\)

【数据范围】
对于 \(30\%\) 的数据,\(1\le n,k \le 10\)
对于 \(80\%\) 的数据,\(1\le n,k \le 10^6\)
对于 \(100\%\) 的数据,\(1\le n,k \le 10^9\)

组合题
对于每一种金属 可以被1~k个熔炉炼出来
所以每一种C(k,1)+……+C(k,k)=2^k-1种方案
n种金属共有(2^k-1)^n 快速幂即可
posted @ 2023-01-25 16:27  PKU_IMCOMING  阅读(20)  评论(0)    收藏  举报