牛客寒假算法基础集训营5 J 炫酷数学

链接: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)被认为是不同的二元组。

思路:2^M次方共有M + 1位,从0开始计,到M位;

每位的选择有(0,0),(0,1),(1,0)

所以ans应该为3^M;

 

代码如下:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 
 5 int main()
 6 {
 7     ll m,ans;
 8     while(cin >> m)
 9     {
10         ans = 1;
11         for(ll i = 0;i < m;i++)
12         {
13             ans = ans * 3;
14             ans = ans % 998244353;
15         }
16         cout << ans << endl;
17     }
18     return 0;
19 }

 

posted @ 2019-02-01 23:30  lu_nacy  阅读(151)  评论(0编辑  收藏  举报