思路:该题就是从一个大小为 的集合中,有顺序地取 次子集,求这些子集两两没有交集的方案数。
首先可以发现这个n和m的范围还是蛮大的,直接暴力肯定不行,那么就用快速幂来算我们要的结果。
#include <bits/stdc++.h>
using namespace std;
int mod = 998244353;
int ans;
int fast_power(long long base,long long power,long long mod){
long long result = 1;
while(power>0){
if(power&1){
result = result*base%mod;
}
power>>=1;
base = (base*base)%mod;
}
return result;
}
int main()
{
int n,m;cin>>n>>m;
ans = fast_power(m+1,n,mod);
cout<<ans<<endl;
return 0;
}