#27894: 使用位元運算


agar.io6100@gmail.com (企鵝)

學校 : 臺北市立明倫高級中學
編號 : 105222
來源 : [180.217.50.84]
最後登入時間 :
2023-05-23 15:15:43
g499. 109北二1.感測器的比較 -- 109北二區桃竹苗資訊學科能力複賽 | From: [180.217.38.117] | 發表日期 : 2021-11-04 15:58

https://github.com/penguin72487/zero-judge-practice/blob/master/vs-code/g499.cpp

我覺得位元運算是最快的了,記得IO優化

a&1的效果是a的二進位最後一個字是1,回傳1,也就是判斷奇數,a>>=1是位移,100000000(256)位移一次變10000000(128)。

 
#27995: Re:使用位元運算


agar.io6100@gmail.com (企鵝)

學校 : 臺北市立明倫高級中學
編號 : 105222
來源 : [180.217.50.84]
最後登入時間 :
2023-05-23 15:15:43
g499. 109北二1.感測器的比較 -- 109北二區桃竹苗資訊學科能力複賽 | From: [114.34.9.80] | 發表日期 : 2021-11-08 17:43

https://github.com/penguin72487/zero-judge-practice/blob/master/vs-code/g499.cpp

我覺得位元運算是最快的了,記得IO優化

a&1的效果是a的二進位最後一個字是1,回傳1,也就是判斷奇數,a>>=1是位移,100000000(256)位移一次變10000000(128)。


更新解法,我們要求n(B-A)=n(B)-n(A&B)

10010
01010
答案要
01000

改成C++有的邏輯運算子,n(B-A)=n(b)XOR(a&b),

b ^=(a&b);

 
ZeroJudge Forum