
算法模板
hqwhqwhq
有梦想就不累
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深夜敲模板_2——并查集
蓝桥杯才发现图论好久不碰了,果然全忘了。。。毕竟当时可能学得不精。。。现在来补一下。。。const int N = 100+5;int n,m;int fa[N];///保存各个节点的根节点struct edge{ int u,v;///边的两端 int w;///边的权值}e[N*N];bool cmp(edge a,edge b){ return a.原创 2015-04-14 20:20:11 · 312 阅读 · 0 评论 -
深夜敲模板_3——树的点分治(poj1741解题报告)
具体算法可以看 2009 年的漆子超的论文以合法点对为例:进行分治,由于每次找的是重心,深度做多是log(n)。大体来说就是 1:先找到该该数的重心,只需要把数遍历一遍就好了。复杂度:o(n)2:计算各个节点到重心的距离。复杂度:o(n)3:对重心距离进行排序,然后计算d[i]+d[j]所以总的复杂度为o(n*log(n)*log(n))#include原创 2015-04-15 23:51:43 · 448 阅读 · 0 评论 -
深夜敲模板_4——无向图的割顶和桥
/*** dfs遍历一遍整个图,标出时间戳 dfs_clock,保存在pre[]里 遍历后得到一个森林 对于每一颗树,每个节点是割顶的情况: 1:根: 有两个或两个以上的子节点 2:非根: 对于节点u,low(u)表示u及u的所有节点的反向边所能连回的最早的节点的pre[]值 如果u的所有子节点的原创 2015-04-21 00:16:22 · 453 阅读 · 0 评论 -
深夜敲模板_5——KMP
/**nt[i]的代表以0...i的最长公共前缀后缀即:0...nt[i] == i-nt[i]...i**/int nt[MAXN];/**nt[]数组的取得如果没有符合的公共前后缀 nt[i]=-1;如果nt[i]=k; s[i+1] = s[k+1] nt[i] = k+1;**/void Get_Next(char* s){ nt[0] = -1;原创 2015-05-01 23:17:08 · 402 阅读 · 0 评论 -
深夜敲模板_1——快速幂 && 矩阵的快速幂
快速幂:///a^n%mint quickpow(int a,int n,int m){ int ans=1; while(n){ if(n&1) ans = (ans*a)%m; a = (a*a)%m; n>>=1; }}矩阵的快速幂:///用结构体保存一个矩阵struct Matrix{原创 2015-04-13 00:53:18 · 530 阅读 · 0 评论