Forsaken的位運算魔法

2021-10-21 11:32:47 字數 1295 閱讀 2070

forsaken是乙個膜法師,特別擅長位運算魔法。經常會有挑戰者來挑戰他,但是forsaken的精力有限,所以只有解決forsaken預先設計的問題,forsaken才會接受挑戰者的挑戰。

今天forsaken的問題是給出乙個n和乙個k,計算

(⊕表示異或位運算符號)。由於答案可能比較大,挑戰者只需要給出在模1e9+7意義下的結果就行了。

輸入描述:

一行乙個n和乙個k。

輸出描述:

乙個整數表示在模1e9+7意義下的答案。

示例1輸入

1 1輸出

3

#include

using

namespace std;

typedef

long

long ll;

template

<

typename t>

inline ll squ

(t x)

template

<

typename t>

inline

bool

chkmax

(t &a,

const t &b)

template

<

typename t>

inline

bool

chkmin

(t &a,

const t &b)

template

<

typename t>

inline t read()

const

int maxn =

1e5+

10, mod =

1e9+7;

inline

void

add(

int&x,

int y)

inline ll f

(int a,

int b,

int c,

int n0)

int n, m, f[maxn]

;int

main()

for(

int i =

0; i <= n; i++

)add

(ans,

(ll) f[i]*(

1<<30)

% mod)

; cout << ans << endl;

return0;

}

位運算 57 普通的位運算

要求說明 當 a 2,b 4,c 6,d 8時程式設計求a c b d a d a的值。解 單目運算子 都是對對應整數轉化成二進位制數後按位比較計算 兩個相應二進位中,都為1,該位為1,否則為0 兩個相應二進位中,有乙個1,該位為1,否則為0 兩個相應二進位,相同為0,不同為1 單目運算子,作用對二...

位運算(1) 初識位運算

前段時間數電課學了些進製轉換,還有與或非等邏輯運算,如今再來看看位運算,倒輕鬆了不少。很早就想寫些非總結性部落格了,奈何還是太懶。也也不知怎的突然又來了興致,趕忙寫下這篇部落格。廢話不多說,今天準備總結總結關於位運算的知識。程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的,即0 1兩種狀態,...

標誌位的位運算應用

今天設計新版標誌位,老郭提出了乙個新的方案。以往都是乙個字段設定乙個狀態,tinyint型別,0或者1,但是這樣的壞處是如果乙個資訊表有很多狀態,需要增加很多的字段,空間利用不好,所以他提出用二進位制位運算來解決標示位的問題。設定標示位字段位tinyint型別,也就是最大128,換成二進位制就是有8...