1. 程式人生 > >牛客寒假5-J.炫酷數學

牛客寒假5-J.炫酷數學

while 快速 def include pac brush std org cpp

鏈接:https://ac.nowcoder.com/acm/contest/331/J

題意:

小希最近想知道一個東西,就是A+B=A|B(其中|為按位或)的二元組有多少個。

當然,直接做這個式子對小希來說太難了,所以小希改變了一些條件,她僅想知道其中A,B<NA,B<N的情況,其中N為2的冪次。

當然,(A=1,B=0)和(A=0,B=1)被認為是不同的二元組。

思路:

對於每個二進制,0-0,1-0,0-1,即可。

快速冪。

代碼:

#include <bits/stdc++.h>
using namespace std;

typedef long long LL;

const int MOD = 998244353;

LL Quick_Mi(int m)
{
    LL x = 3;
    LL res = 1;
    while (m > 0)
    {
        if (m&1)
            res = res * x % MOD;
        x = x * x % MOD;
        m >>= 1;
    }
    return res;
}

int main()
{
    int m;
    cin >> m;
    cout << Quick_Mi(m) << endl;

    return 0;
}

  

牛客寒假5-J.炫酷數學