一、二進位制操作
算數字運算:
a=60(0011 1100)
b=13(0000 1101)
1.與(&):兩個二進位制數,同 1為 1,否則為 0。 a & b=12(0000 1100)
2.或(|):兩個二進位制數,同 0為 0,否則為 1。 a | b=61(0011 1101)
3.非 按位取反(~):對二進位制每一位進行了一次取反操作,若二進位制數字0,則變成1,否則變成0。
~a=195(1100 0011)
4、異或運算(∧):兩個二進位制數,同為0,異為1。
異或性質:對於異或乙個非常重要的性質,對於乙個值異或同乙個值兩次,則結果還是原值。
移位操作符:
1、左移<< :二進位制中的左移一位就是十進位制中乘二。
2、右移<< :二進位制中的右移一位就是十進位制中除以二,捨去餘數。
二、二進位制列舉
.原理:
1.利用的是二進位制下n位長度的數有2^n,即有這麼多種情況;
2.對乙個二進位制來說 1 代表取這個元素 0代表不取這個元素;
3.利用迴圈,選取符合條件的情況;
題目
problem a(異或):teacher li
nefu 643
/*思路:輸入第乙個名字為 a,其他都為 b,然後每個 b 和 a 異或*/
**#include
#include
using
namespace std;
char a[31]
,b[31];
/*在main之外定義字串,在字串結尾'/0'之後的ascii值才能自動清為 0*/
intmain()
printf
("scenario #%d\n"
,flag)
;printf
("%s\n\n"
,a);
}return0;
}**
problem b (異或):find different
nefu 1172
```cpp
#include
#include
using
namespace std;
intmain()
printf
("%d\n"
,a);
}return0;
}
problem c:和為k–二進位制列舉
nefu 1205
#include
#include
using
namespace std;
intmain()
if(sum==k)}if
(flag==0)
printf
("no\n");
}return0;
}
problem d:陳老師加油-二進位制列舉
nefu 1505
#include
#include
using
namespace std;
intmain()
/*記錄遇到加油站的次數*/
else}if
(flag1==
5&&flag2==
10&&d==0)
sum++;}
printf
("%d\n"
,sum);}
return0;
}
problem e:紙牌遊戲-二進位制-搜尋
nefu 1518
#include
#include
intmain()
if(s==k)
flag++;}
printf
("%d\n"
,flag);}
return0;
}
problem f:權利指數
nefu 1641
#include
#include
intmain()
memset
(s,0
,sizeof
(s))
;/*使 s 陣列初始值都為0*/
for(i=
0;i<(1
<;i++
)/*flag用來標記a[j]是否取過*/}if
(sum<=m/2)
}}for(i=
0;i1;i++
)printf
("%d "
,s[i]);
printf
("%d\n"
,s[n-1]
);}return0;
}
problem g:趣味解題
nefu 1285
#include
#include
intmain()
ants=0;
for(i=
0;i<
1<)else
p=p*e[j];}
if(flag==x)
ants=ants+p;
}printf
("%.4lf\n"
,ants);}
return0;
}
二進位制列舉
fliptile 乙個反轉問題,大意是一頭牛要反轉木板,木板有黑和白,全部翻成白色的反法 輸出。小蒟蒻根本想不到 參考了大佬的部落格。點此轉入 把第一行的全部翻法都試一遍,然後看哪種的步數最少。好難想。include include int maze 20 20 int t 20 20 int f ...
二進位制列舉
讓我們從乙個題目入手 從乙個大小為n的整數集中選取一些元素,使得它們的和等於給定的值t。每個元素限選一次,不能乙個都不選。關於這個題目,我們很容易想到的便是對所有元素進行暴力搜尋,然後進行剪枝便可。下面我將介紹二進位制列舉的思路和流程來巧妙的解決這個問題。對任一數來說,所面臨的問題是取或不取,在二進...
二進位制列舉
題目鏈結 題意 總共有3x3盞燈,每次切換乙個燈還會同時改變上下左右的燈,問想把燈全部開啟最少需要操作多少次 輸入 乙個3x3的矩陣 分析 操作順序對題目是不影響的,另外,操作奇數次等價於1次,偶數次等價於2次,也就是說最大操作次數是9次 分析題目我們可以發現題目資料規模並不大,可以暴力列舉,並且燈...