题解
对于每个二进制位有三对(0, 0), (0, 1), (1, 0)则n位二进制位有3^n个 对998244353取模即可
AC代码
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int MOD = 998244353;
ll mpow(ll a, ll n, ll m) //a ^ n % m
{
ll t = 1;
while (n)
{
if (n & 1)
t = (t * a) % m;
a = (a * a) % m, n >>= 1;
}
return t;
}
int main()
{
#ifdef LOCAL
//freopen("C:/input.txt", "r", stdin);
#endif
int n;
cin >> n;
cout << mpow(3, n, MOD) << endl;
return 0;
}
本文介绍了一种计算特定二进制位组合数量的方法,通过分析每对二进制位可能的状态,得出n位二进制有3^n种组合,并提供了一个高效的模运算算法实现。代码使用C++编写,通过快速幂模运算计算结果。
4219

被折叠的 条评论
为什么被折叠?



