鏈接:https://ac.nowcoder.com/acm/contest/331/J
來源:牛客網
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
小希最近想知道一個東西,就是A+B=A|B(其中|爲按位或)的二元組有多少個。
當然,直接做這個式子對小希來說太難了,所以小希改變了一些條件,她僅想知道其中A,B<N的情況,其中N爲2的冪次。
當然,(A=1,B=0)和(A=0,B=1)被認爲是不同的二元組。
第一行輸入一個非負整數M。
N=2M,M≤100
即2的M次爲N。
一個整數ans,對998244353取模。
示例1
0
1
示例2
71
588378066
解題思路:直接看或許看不出來什麼,但是如果我們先暴力跑一遍前幾個就會發現一些規律
規律如下
不難發現,這是3的次冪,所以這道題其實就是裸的快速冪而已
#include<stdio.h> int main() { int m; scanf("%d", &m); long long int ans = 1, k = 3; while(m) { if(m % 2) ans = ans * k % 998244353; k = k * k % 998244353; m = m / 2; } printf("%lld\n", ans % 998244353); }