二進位制嘛,可以加速
a*2==a<<1
a/2==a>>1
2^b==1<< b
可以判斷一些東西
a&1->(a%2==1)
a^1可以求出數的乙個相鄰數
等等等等
下面我會在做題目時記錄一下位運算的技巧
這題讓我們統計區間顏色種類,種類不超過30種;
那我們可以用位運算來壓縮;
開乙個int,轉換成二進位制後可以清晰的表示這區間的種類有哪些;
合併時只要|就好啦
int outit(int x,int y,int num)
答案輸出
sum=outit(x,y,1);
k=1;ans=0;
while(k<=sum)
一開始區間修改,z是種類;
scanf("%d
%d%d",&x,&y,&z);
if(x>y)swap(x,y);
change(x,y,(1
<<(z-1)),1);
這題是題目給我們用位運算來壓縮資訊,我們也要學習一下
還有bitset
二進位製小技巧
目錄 xx 1 xx1xx1 x x現在令 x 10101000,接下來我們算一下 x x 1 的結果。首先我們回憶一下二進位制減法的規則 0 0 1 1 0 1 0 1 0 1 1 向高位借位 例如,11000011 2 00101101 2的算式如下 11000011 被減數 00101101 ...
二進位制運算技巧
假設都在x86或x86 64架構cpu上進行運算,二進位制基本運算包括,加減乘除 與 或 異或 同或 移位等 假設n 為 32 位整形數,取正整數n除以8的餘數 n 0x07 假設n 為 32 位整形數,取正整數n除以16的餘數 n 0x0f 假設n 為 32 位整形數,8位對齊 n 7 0xfff...
技巧 二進位制列舉
題目 第一行,輸入兩個整數 n,x 1 n 20,1 x 2000 n,x 1 leq n leq 20,1 leq x leq 2000 n,x 1 n 20 1 x 200 0 接下來輸入 n n 個整數,每個整數不超過 100100。輸出乙個整數,表示能湊出 xx x 的方案數。方法 二進位制...