找數字2
time limit: 25000ms, special time limit:50000ms, memory limit:32768kb
total submit users: 92, accepted users: 67
problem 11466 : no special judgement
problem description
給定2n+1
個數字,只有乙個數字出現了奇數次,其餘的數字都出現了偶數次,現在你需要找出出現奇數次的數字。
input
包含多組資料,每組資料第一行為乙個數
n(0<=n<=5000000)
。接下來一行包括
2n+1
個數字。
output
對於每組資料,輸出出現奇數次的數字
.sample input
11 1 1
21 2 1 3 3
31 1 2 2 3 3 4
sample output12
4這是湖師大的14年校賽的一道水題
題目的意思很清楚就是說要你在輸入的數字中找出出現奇數次次數的數字
我剛上手就是兩個for的巢狀,但是給出的資料很大,所以tle了
後來哈德斯告訴我其實這個題目可以用位運算來做,然後我就看了看位運算
就有:1^1=0 0^0=0
1^0=1 1^0=1
布林型的就有:
true ⊕ false = true
false ⊕ true = true
false ⊕ false = false
true ⊕ true = false
如果是兩個十進位制的數的話,就會把十進位制的數字先轉化為二進位制,然後再進行異或運算,這樣統計出現奇數次個數數字的問題就解決了。
**如下:
1 #include2using
namespace
std;
3int
main()
414 printf("
%d\n
",b);15}
16return0;
17 }
關於位運算
今天看k神的一篇題解,看到一些關於位運算的技巧。又想起以前學長川哥給的一篇位運算對集合處理的技巧的pdf。所以就一起整理一下。各種位運算子的功能就不累述了。集合的位運算表示 來自川哥給的pdf 基本表示 1.空集 0 2.全集 1 3.只含有第 i 個元素的集合1 集合間的操作 1.s 與 t 的並...
關於位運算
9月21日,對本文從格式到部分內容上都進行了修改 今天看了一位師兄去年的筆經總結,其中有一題是 不許用 和 來實現求任意數除以3的餘數 我想考官的目的應該是想考察學生對位運算的熟悉程度吧,於是我把題目擴充套件成 只能用 和位運算實現正整數除法 和取模 注意 這裡不能使用其它的庫例程來輔助計算,如lo...
關於 位運算
位運算 位運算是把數字用二進位制表示之後,對每一位上0或者1的運算。理解位運算的第一步是理解二進位制。二進位制是指數字的每一位都是0或者1.比如十進位制的2轉化為二進位制之後就是10。在程式設計師的圈子裡有乙個流傳了很久的笑話,說世界上有10種人,一種人知道二進位制,而另一種人不知道二進位制。其實二...