演算法競賽高階指南 位運算

2021-10-03 09:28:15 字數 659 閱讀 6815

四種基本操作:

與(&)、或(|)、非(!)、異或(^)
補碼:

int:32位,最高位0代表為整數,最高位為1代表負數。

x+?=00000000000000000000(32個0)

?就是x的補碼。

?=~x+1

初始化:

memset(f,0x3f,sizeof f),每個位元組為0x3f,那麼每個int的數為4個位元組,就是0x3f3f3f3f。
左右移:

1<2^n

n>>x ==>n/2^n(最右邊補0根據n的符號來定,n是正數則補0,n是負數則補1)

快速冪

int a,b,p;

cin>>a>>b>>p;

int ans=1%p;

while(b)

cout《異或操作

1.兩個相同的數異或為0.

2.乙個數與1異或得到他的配偶、

0,1一對

2,3一對

4,5一對

比如4^1=5,5^1=4

3.lowbit運算

x&(-x)得到其後面最低的一位一

《演算法競賽高階指南》0 1位運算

求 a 的 b 次方對 p取模的值。輸入格式 三個整數 a,b,p,在同一行用空格隔開。輸出格式 輸出乙個整數,表示a b mod p的值。資料範圍 1 a,b,p 109 輸入樣例 3 2 7 輸出樣例 include using namespace std 考察快速冪 intmain cout ...

《演算法競賽高階指南》 防曬

有c頭奶牛進行日光浴,第i頭奶牛需要minspf i 到maxspf i 單位強度之間的陽光。每頭奶牛在日光浴前必須塗防曬霜,防曬霜有l種,塗上第i種之後,身體接收到的陽光強度就會穩定為spf i 第i種防曬霜有cover i 瓶。求最多可以滿足多少頭奶牛進行日光浴。輸入格式 第一行輸入整數c和l。...

《演算法競賽高階指南》蚯蚓

蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓們沒辦法,蛐蛐國王只好去請神刀手來幫他們消滅蚯蚓。蛐蛐國裡現在共有 n 只蚯蚓,第 i 只蚯蚓的長度為 ai 所有蚯蚓的長度都是非負整數,即可能存在長度為0的蚯蚓。每一秒,神刀手會在所有的蚯蚓中,準確地找到最長的那乙隻,將其切成兩段。若有多隻最長的,則任...