基本上是打表找规律……
下面第(m)列第(n)行表示(ans(n, m)):
很明显的等比数列吧……第(n)行的公比为(2^{n-1})
然后用 小学奥数/高中数学 的公式可以求得(ans(n, m)=2^{(i-1)^{(j-1)}})(是两个次方呐!)
这就可以求咯~本人写的快速幂(防溢出)
#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353LL;
long long qpow(long long a, long long k) {
long long w = 1;
while(k) {
if(k & 1) {
w *= a;
w %= mod;
}
k >>= 1;
a *= a;
a %= mod;
}
return w % mod;
}
int main() {
long long t, a, b;
cin >> t;
while(t--) {
cin >> a >> b;
// cout << a << " " << b << " ";
cout << qpow(qpow(2, a - 1), b - 1) % mod << endl;
}
return 0;
}
三年OI一场空,不开long long见祖宗