主要參考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.如果是負數的...