Template
行色简单
楼顶的风继续吹着,好像吹了很多年。
展开
-
【并查集模板】
#include //有的写法用到了树的深度,就是重新开一个数组ran[maxn];//用来记录每个树的深度,合并的时候把深度较小的合并到较大的上边,防止出现最极端的情况。//但是用上路径压缩的话就不需要这个数组,因为压缩过后深度都是 2 ,随意操作;//压缩就是把/* */里面的 par[x] = 加上,不加上去的话只查找,没有压缩;//附上带ran[]数组的合并;//如果用ran原创 2017-08-23 10:52:58 · 303 阅读 · 0 评论 -
【矩阵模板】
#include struct Mat{ int N,M; int m[15][15];};Mat MatMul(Mat A,Mat B,int MOD) { //两个相等矩阵的乘法,对于稀疏矩阵,有0处不用运算的优化 Mat tmp; tmp.N=A.N; tmp.M=B.M; for(int i=0; i<A.N; i++) { for(int j=0; j<B.原创 2017-08-22 20:22:17 · 590 阅读 · 0 评论 -
【BFS模板】
宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。#include#in原创 2017-08-22 16:03:50 · 294 阅读 · 0 评论 -
【哈夫曼编码模板】
哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。可以原创 2017-08-22 11:02:04 · 542 阅读 · 0 评论 -
【矩阵快速幂模板】
原文来自:点击打开链接下面是 m^n % k 的快速幂:// m^n % kint quickpow(int m,int n,int k){ int b = 1; while (n > 0) { if (n & 1) b = (b*m)%k; n = n >> 1 ;转载 2017-08-15 19:55:37 · 208 阅读 · 0 评论 -
【矩阵的乘法和加法模板】
// 矩阵的加法://代码如下:#include const int maxn = 77;int a[maxn][maxn],b[maxn][maxn],c[maxn][maxn];int main(){ int n,m; while (~scanf ("%d%d",&n,&m)) { for (int i = 0 ; i < n ; i++)原创 2017-08-14 16:43:49 · 506 阅读 · 0 评论