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...