树
pcccc0616
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LCA倍增标程
LCA倍增标程#include<iostream> #include<cstdio> #include<cmath> using namespace std; int n,m,s,x,y; struct {int to,next;}a[1000010]; int head[500010],deep[500010],zx[500010][20],tot; void build(int x,int y)原创 2017-02-13 11:43:35 · 278 阅读 · 0 评论 -
蒜头君的树
蒜头君的树题解 先存图,再dfs,dfs的过程中统计以x点为子树的点的总数cnt[x],这样可以求出来x和fa[x]连的这条边一共被使用了(n-cnt[x])*cnt[x]次 再求出来最短路之和tot(因为是树,所以最短路好求),对于每次修改,只需要将将差乘上使用次数就好了 #include<iostream> #include<cstdio> using namespace std; l原创 2017-07-31 17:29:07 · 586 阅读 · 0 评论 -
求有向图的强连通分量(scc):Tarjan算法
Tarjan#include<iostream> #include<vector> using namespace std;const int MAX=10001;int Stop;//栈中的元素个数 int cnt;//记录连通分量的个数 int visitNum;//记录遍历的步数 int DFN[MAX]; //记录节点u第一次被访问时的步数 int LOW[MAX]; //记录与节点u和u的转载 2017-02-15 21:08:15 · 416 阅读 · 0 评论 -
线段树
贾比奇的博客带lazytag的线段树模板/* 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3或4个整数,表示一个操作,具体如下: 操作1: 格式:1 x y k 含义:将区间[x,y]内每个数加上k 操作2: 格式:2 x y 含义:输出区间[x,y]内每个数的和 */ #include原创 2017-08-04 11:18:00 · 308 阅读 · 0 评论 -
RMQ求LCA
落谷模板#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<string> #define MAXN 1010001 using namespace std; int n,m,to[MAXN],nxt[MAXN],s,head[MAXN],e,pos[MAXN],dfn[MAXN],u,原创 2017-09-07 21:40:35 · 317 阅读 · 0 评论
分享