原创 回溯思想解排列問題(一)
<pre name="code" class="cpp"> 搜索基本上算是算法的入門檻了,後續很多問題都是基於回溯思想的搜索性質解題的,當然這裏暫且指的是深搜(這是一個遞歸函數,調試起來很不方便)。所以在忍了兩個月之後要在這裏總結一下
原创 爲向量法求組合問題
#include <iostream> #include <stdio.h> #include <algorithm> #include <string.h> /* *位向量法解決組合問題,貌似是最易理解的方式 *建立一個向量,0表
原创 Node:原地歸併
#include <iostream> #include <stdio.h> #include <algorithm> #include <string.h> #include <stack> #include <queue> #def
原创 Node:普通歸併
#include <iostream> #include <stdio.h> #include <algorithm> #include <string.h> #include <stack> #include <queue> #def
原创 回溯法求排列(二)
考慮一個字符串排列問題,一個字符串的全排列可以怎麼分步進行? 方法一:依次排列,檢查每一次填入的數字是否與之前的相同,這裏要用到一個標記數組 方法二:把每一個元素挨個放到第一個位置,求解後n-1個元素的全排列,顯然這個也可以遞歸;
原创 Node:快速排序
#include <iostream> #include <stdio.h> #include <algorithm> #include <string.h> #include <iomanip> using namespace std
原创 Node:鏈式前向星
#include <iostream> #include <stdio.h> #include <algorithm> #include <string.h> #include <stack> #include <queue> #def
原创 Node:最小堆
#include <iostream> #include <stdlib.h> #include <ctime> using namespace std; const int maxn=1010; int heap[maxn]; in
原创 Node:線段樹的單點更新
#include <iostream> #include <stdio.h> #include <algorithm> #include <string.h> using namespace std; const int maxn=32
原创 Node:RMQ問題之ST算法
#include <iostream> #include <stdio.h> #include <cmath> using namespace std; const int maxn=1000010; const int N=1010;
原创 Network:socket+線程
#include <Winsock2.h> #include <iostream> #include <windows.h> using namespace std; const int maxn=10; /* 服務器端 */ //有
原创 區間DP-由矩陣連乘所想到的
1.最優三角剖分 #include <iostream> #include <sstream> #include <stdio.h> #include <algorithm> #include <string.h> #include <s
原创 一般DP-雙調取數問題
#include <iostream> #include <sstream> #include <stdio.h> #include <algorithm> #include <string.h> #include <stack> #in
原创 區間DP-矩陣連乘問題
#include <iostream> #include <sstream> #include <stdio.h> #include <algorithm> #include <string.h> #include <stack> #in
原创 分治-二叉樹重建
</pre><pre name="code" class="cpp">#include <iostream> #include <sstream> #include <stdio.h> #include <algorithm> #incl