ZZULI 小P參加相親大會 位運算

2021-09-11 22:13:44 字數 946 閱讀 2389

時間限制: 2 sec  記憶體限制: 16 mb

小p最近人生得意,去參加了一次相親大會,相親大會上每個人有乙個密碼牌(密碼牌上的密碼是乙個正整數m,m<231 ),相互之間在交流之前先交換密碼牌,密碼牌上的密碼可能相同,也可能不同,如果相同,兩人牽手離開,如果不保同,各自再尋找下一位,保證最後只有1個人或2個人留下來。

第一行兩個數 n,k (n≤3000000,1≤k≤2),n表示參加相親大會的人數,接下來 n行每行乙個正整數表示相親大會上每乙個人的密碼,k表示最後留在相親大會的人數。

從小到大輸出一行 k個數,表示相親不成功留在相親大會人的密碼,中間用空格分隔。

3 122

2

對於40%的資料,保證 k=1。

對於20%的資料,保證n≤100

對於100%的資料,保證 n≤3000000,ai<2^31。

因為資料太大我們不能用一般的方法,這道題其實就是在一堆數中找出k個出現奇數次的數,其餘都出現偶數次。解析詳見

#include int n, arr[3000005];

void findnum(int len, int k)

int s1 = s, s2 = s, m = 0;

while (!(s1 & 1))

for (int i = 0; i < len; i++)

if ((arr[i] >> m) & 1)

s ^= arr[i];

if (s < s ^ s2)

printf("%d %d\n", s, s ^ s2);

else printf("%d %d\n", s ^ s2, s);

}int main()

return 0;

}

zzuli1519 小P參加相親大會(異或)

題目描述 小p最近人生得意,去參加了一次相親大會,相親大會上每個人有乙個密碼牌 密碼牌上的密碼是乙個正整數m,m 231 相互之間在交流之前先交換密碼牌,密碼牌上的密碼可能相同,也可能不同,如果相同,兩人牽手離開,如果不保同,各自再尋找下一位,保證最後只有1個人或2個人留下來。輸入第一行兩個數 n,...

zzuli1519 小P參加相親大會(異或)

題目描述 小p最近人生得意,去參加了一次相親大會,相親大會上每個人有乙個密碼牌 密碼牌上的密碼是乙個正整數m,m 231 相互之間在交流之前先交換密碼牌,密碼牌上的密碼可能相同,也可能不同,如果相同,兩人牽手離開,如果不保同,各自再尋找下一位,保證最後只有1個人或2個人留下來。輸入第一行兩個數 n,...

ZZULI 小P上考場 最短路

時間限制 1 sec 記憶體限制 128 mb 小p一覺醒來發現天已經亮了。今天是程式設計大賽的日子,小p需要盡快趕往考場。小p家在a號路口,他會告訴你哪些路口是相聯通的,距離是多少。賽場在b號路口,該市道路沒有單行道。小p想讓你幫他規劃到考場的路線,他希望找到這條最短的路線以用最短時間抵達考場。第...