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 快速幂即可
此生无悔入OI 来生AK IOI

浙公网安备 33010602011771号