位異或和STL

2021-09-26 01:45:50 字數 644 閱讀 8551

主要參考hdu2095

這裡我講一下,set容器的話是對於乙個序列的不重複的有序排序。也就是比如,輸入2個1,但實則顯示出來的話只有1個1.因為它自動刪除掉重複的部分。

stl部分解法

標頭檔案:#include

之前申明set name;

而比如舉個例子:

我定義乙個set容器 set s;

然後我輸入了乙個x;

想在s裡面找是否有x,即s.find(x)

如果查詢不到的話,就是s.find(x)的值會等於s.end(),注意這個end是s中最後乙個元素的後一位。

如果查詢的話,就是那個數的位數。

可以選擇把x插入s,即s,insert(x);

也可以選擇在s中刪除x,即s.erase(x);

最後你要輸出的話,比如容器中的首位,那就是cout<<*s.begin();

位運算思路

位運算是乙個比較神奇極度簡便的方法

基本法則是:

a^b = b^a

(a^b) ^ c=a ^ (b^c)

a^b ^ a=b

對於0與n亦如此

0^n=n;

n^n=0;

異或 位運算

powered by ab in 局外人 題意 求兩個陣列每個數之間的異或和。如果要o n 2 o n 2 o n2 遍歷,資料範圍很大,肯定會t tt。那麼就要想個別的辦法。我們可以統計分別 a aa,b bb 陣列每一位 0,1 0,10,1 個 數,分別計算每位的貢獻即可。如何實現?inclu...

位運算 異或

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

按位異或運算 (正數異或負數)

正數反碼 與原碼相同 負數反碼 符號位為 1 數值位按位 取反。正數補碼 與原碼相同 負數補碼 求反加一 記住 所有參與運算的都是以補碼形式進行的 結果也是補碼 因此也需要將補碼轉換成為原碼的形式存在 下面就以乙個例子進行講解 負二 異或 三等於多少?2 3 那麼怎麼轉換成位補碼呢?1.如果是負數的...