使用陣列來模擬位運算,對於取值只為0,1兩種的判斷,乙個bool型別要占用乙個byte,而位運算只占用乙個bit,是bool的1/8。
以下是判斷乙個string中的字元是否完全不同,演算法1是普通解法,演算法2為使用陣列模擬位儲存的解法。紅色部分為關鍵**
#include
#include
using namespace std;
bool isunique1(string str)
return true;
}bool isunique2(string str)
return true;
}int main()
樹狀陣列 BIT
樹狀陣列模版 注意 樹狀陣列x必須 0,因為lowbit 0 0,會死迴圈 單點更新區間查詢 在log n 內修改單點,求出cnt x a 1 a x 之和 求區間 a,b 之和只要求出 sum b sum a 1 即可 define rep i,a,n for int i a i n i defi...
樹狀陣列(BIT)
樹狀陣列 bit 是能夠完成下述操作的資料結構。在解題過程中,我們有時需要維護乙個陣列的字首和s i a 1 a 2 a i 但是不難發現,如果我們修改了任意乙個a i s i s i 1 s n 都會發生變化。可以說,每次修改a i 後,調整字首和s在最壞情況下會需要o n 的時間。當n非常大時,...
陣列模擬鄰接表儲存
鄰接矩陣看上去是個不錯的選擇,首先是容易理解,第二是索引和編排都很舒服但是我們也發現,對於邊數相對頂點較少的圖,這種結構無疑是存在對儲存空間的極大浪費。因此我們可以考慮另外一種儲存結構方式,例如把陣列與鍊錶結合一起來儲存,這種方式在圖結構也適用,我們稱為鄰接表 adjacencylist 每乙個單鏈...