我們來看乙個可以用二進位制列舉的方法解決的題目
話說大詩人李白,一生好飲 幸好他從不開車
一天,他提著酒壺,從家裡出來,酒壺中有酒兩斗
他邊走邊唱:
無事街上走,提壺去打酒
逢店加一倍,遇花喝一斗
這一路上,他一共遇到店 5 次,遇到花 10 次,
已知最後一次遇到的是花,他正好把酒喝光了
請你計算李白遇到店和花的次序,有多少種可能的方案
#include#includeusing namespace std;
int main()//假設1是遇見店 0是遇見花 只要最後5個1 9個0 並且酒剩一斗,就可以
if(b[j]==0)
}if(num1==5&&num2==9&&num==1)
sum++;
} cout<}
二進位制列舉子集
利用二進位制的 開關 特性列舉 詳細為 如果給定集合a大小為n,則想象a 的每乙個元素相應乙個開關位 0或1 0表示不出現,1表示出現。當每乙個元素的開關位的值確定時,就得到乙個子集。因此共同擁有2 n 1種情況 全0為空集,這裡不考慮 我們利用區間 1,2 n 1 該區間上的每乙個整數相應乙個子集...
C 二進位制法生成子集
乙個有 n 個元素的集合 n 0,n為整數 可以生成 2 n個子集。例如 可以生成4個子集 二進位制法就是 從0到 2 n用二進位制表示,為1的對應的陣列位置元素 納入子集集合。例如 a 有 16 個子集,建立如下表 十進位制數 二進位制數 1對應的陣列元素 結果集0 0000空1 0001 a 3...
做實驗 解題報告(二進位制列舉子集)
有一天,你實驗室的老闆給你布置的這樣乙個實驗。首先他拿出了兩個長度為 n 的數列 a 和 b,其中每個 a i 以二進位制表示乙個集 合。例如數字 5 101 2 表示集合 第 i 次實驗會準備乙個小盒子,裡面裝 著集合 a i 所有非空子集的紙條。老闆要求你從中摸出一張紙條,如果滿足你摸出的 紙條...