原创 c++ Bullman-Ford算法前向星版本實現

#include <iostream> #include <queue> #include <cstring> #include <algorithm> #include <cstdio> #include <limits.h> usi

原创 位運算小技巧總結(更新中 2020/4/24)

想到哪寫到哪 交換兩個數字 void swap(int & a, int & b){ a ^= b; b ^= a; a ^= b; } 判斷奇偶 if(1 == (n & 1)) // 奇數 if(0

原创 c++ AVL樹 插入 刪除

AVL樹的插入很簡單,根據BST樹的特性插入之後在回溯的過程中調整即可 AVL樹的刪除也不是很難,一共有三種情況 第一種是左子樹爲空(右子樹爲不爲空無所謂) 第二種是右子樹爲空(此時左子樹不爲空) 這兩種直接用另一半子樹覆蓋當前節點然後刪

原创 線段樹和樹狀數組(記錄一下模板)

線段樹(單點修改,區間查詢) vector<int> seg; // 線段樹數組 void segUpdate(const int & k) { seg[k] = seg[k << 1] + seg[k << 1 | 1]; } vo

原创 洛谷 P1428 小魚比可愛 樹狀數組解法

題目描述 人比人,氣死人;魚比魚,難死魚。小魚最近參加了一個“比可愛”比賽,比的是每隻魚的可愛程度。參賽的魚被從左到右排成一排,頭都朝向左邊,然後每隻魚會得到一個整數數值,表示這隻魚的可愛程度,很顯然整數越大,表示這隻魚越可愛,而且任意兩

原创 c++ 實現十三個排序方法 附測試結果加上簡單講解(更新中)

數據測試的種子爲 1003166545645613 long long seed = 1003166545645613; srand(seed); 測試數據都是隨機生成的,規模爲個數字 stl的sort用了13s 排序中的一個小優化,把

原创 c++ 實現遞歸/非遞歸二叉樹遍歷

TreeNode數據結構 struct TreeNode { int val; TreeNode * left; TreeNode * right; TreeNode(const int & _val = int(), Tree

原创 洛谷 P2249 【深基13.例1】查找

P2249 【深基13.例1】查找 常規版本(400+ms) #include <iostream> #define MAXN 1000010 using namespace std; int a[MAXN]; int main()

原创 洛谷 P1102 A-B 數對

P1102 A-B 數對 二分查找解法(100+ms) #include <cstdio> #include <algorithm> #define MAXN 200020 using namespace std; int a[MAX

原创 c++ 舞蹈鏈算法求解數獨問題 控制檯版本 帶註釋

#include <iostream> #include <vector> #include <algorithm> #include <unordered_map> #define DELPOINTER(p) if(nullptr!=

原创 c++ 隨機生成數獨(不保證唯一解)

給出一個最簡單的生成數獨初盤的程序,不保證有唯一解,終盤的正確性通過填充的過程來確定,可以用舞蹈鏈算法求解該數獨得到其中一個解 隨機生成的方法就算交換行和列然後隨機挖洞 這裏有一點要注意的就是交換的行和列必須處於同一宮中,要不然交換之後保

原创 c++ spfa 鏈式前向星版本加上SLF優化版本的實現

普通版本 #include <iostream> #include <queue> #include <cstring> #include <algorithm> #include <cstdio> #include <limits.h

原创 c++ 實現變進制數

#include <iostream> #include <memory> #include <cstdlib> #include <cstdio> #include <cstring> #include <string> #inclu

原创 位運算小技巧總結(更新中)

想到哪寫到哪 交換兩個數字 void swap(int & a, int & b){ a ^= b; b ^= a; a ^= b; } 判斷奇偶 if(1 == (n & 1)) // 奇數 if(0

原创 藍橋杯_算法訓練_最大最小公倍數

試題 算法訓練 最大最小公倍數 提交此題   資源限制 時間限制:1.0s   內存限制:256.0MB 問題描述 已知一個正整數N,問從1~N中任選出三個數,他們的最小公倍數最大可以爲多少。 輸入格式 輸入一個正整數N。 輸出格式 輸出