随笔分类 - 算法模板
摘要:/**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 G...
阅读全文
摘要:/*** dfs遍历一遍整个图,标出时间戳 dfs_clock,保存在pre[]里 遍历后得到一个森林 对于每一颗树,每个节点是割顶的情况: 1:根: 有两个或两个以上的子节点 2:非根: 对于节点u,low(u)表示u及u的所有节点的反向边所能...
阅读全文
摘要:具体算法可以看 2009年的漆子超的论文以合法点对为例:进行分治,由于每次找的是重心,深度做多是log(n)。大体来说就是 1:先找到该该数的重心,只需要把数遍历一遍就好了。复杂度:o(n)2:计算各个节点到重心的距离。复杂度:o(n)3:对重心距离进行排序,然后计算d[i]+d[j]#includ...
阅读全文
摘要:蓝桥杯才发现图论好久不碰了,果然全忘了。。。毕竟当时可能学得不精。。。现在来补一下。。。const int N = 100+5;int n,m;int fa[N];///保存各个节点的根节点struct edge{ int u,v;///边的两端 int w;///边的权值}e[N*N]...
阅读全文
摘要:快速幂:///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; }}矩阵的快速幂:...
阅读全文

浙公网安备 33010602011771号