異或 位運算

2021-10-11 18:32:42 字數 934 閱讀 1306

powered by:ab_in 局外人

題意:求兩個陣列每個數之間的異或和。

如果要o(n

2)o(n^2)

o(n2

)遍歷,資料範圍很大,肯定會t

tt。那麼就要想個別的辦法。

我們可以統計分別 a

aa,b

bb 陣列每一位 0,1

0,10,

1 個 數,分別計算每位的貢獻即可。

如何實現?

#include

#define ll long long

const

int n =

2e5+10;

const

int mod =

1000000007

;using

namespace std;

int a[n]

,b[n]

,basic[n]

;void

bin(

int x,

int a)

num ++

; x /=2

;}}ll ans;

int n, m, x;

intmain()

for(

int i =

1; i <= m; i++

)for

(int i =

0; i <=

34; i++

)printf

("%lld\n"

, ans)

;return0;

}

貼張圖

完結。

位運算 異或

通俗的說異或,即指兩值相異時,取真值,否則為假。以下是其真值表 x y y 0 1 x 001 110那麼如何用與或非實現呢?既然是相異,當然首先想到 x y,看看它的真值表 x y01 0001 10有乙個位子有點不一樣,如果換一下 x 和 y 的位置呢?y x01 0011 00哦,這下很清楚了...

位運算 異或運算

今天刷題時遇到乙個題,本以為是暴力 大模擬,結果看完別人的ac 後人都傻了,竟然是位運算。其中用到了異或 這種運算子。先上原題連線 傳送門 題目意思很好理解,有無限多個路燈,編號為1.2.3 剛開始時都是關著的,每次對一盞燈的操作都會改變它的狀態 即開變成關,關變成開 每次操作會給你乙個實數a和乙個...

位運算之異或運算

位運算是基於整數的二進位制表示進行的運算。位運算總共只有5種運算 與 或 異或 左移 右移 異或運算 維基百科中對 異或 的解釋 在邏輯學中,邏輯算符異或 exclusive or 是對兩個運算元的一種邏輯析取型別,符號為 xor 或 eor 或 程式語言中常用 但與一般的邏輯或不同,異或算符的值為...