摘要:
//tarjan 缩点 //把强连通分量染成同样的颜色 用数组记录一下强连通分量内所有点权和 #include #include #include #include #include #include using namespace std; int n,m,cnt,ans,head[10001]; int t,sta[10001],vis[10001]; int dot,dfn[10001... 阅读全文
摘要:
//Tarjan 割边 //当dfn[u] #include #include #include #include #include using namespace std; int n,m,cnt,ans,head[10001]; int dot,dfn[10001],low[10001]; int cut[200001]; struct uio{ int from,to,next,... 阅读全文
摘要:
//Tarjan 割点 //根节点满足子节点个数>=2即为割点 //非根节点满足dfn[u] #include #include #include #include #include using namespace std; int n,m,cnt,ans,head[100001]; int dot,dfn[100001],low[100001]; int cut[100001]; stru... 阅读全文
摘要:
//ST表 //计算RMQ 即区间最值 //思想:区间dp+倍增 //注:将代码内所有max改成min即可求最小值 #include #include #include #include #include #include using namespace std; int n,m,l,r,a[100001]; int Pow[31],Log[100001];//Pow[i]表示2的i次幂 L... 阅读全文
摘要:
//LCA //树链剖分 在线 #include #include #include #include #include #include using namespace std; int n,m,root,cnt,head[500001]; int hvyson[500001],fa[500001],siz[500001],dep[500001],top[500001]; struct ui... 阅读全文
摘要:
//LCA //倍增 在线 #include #include #include #include #include #include #define maxn 500001 using namespace std; int n,m,root,cnt; int head[2*maxn],depth[maxn],f[maxn][21];//depth深度 f[a][b]指a节点的第2^b个祖先 ... 阅读全文
摘要:
//LCA //Tarjan 离线 #include #include #include #include #include #include #define maxn 500001 using namespace std; int n,m,root,cnt,lca[maxn],head[maxn],jdg[maxn],fa[maxn],set[maxn];//set并查集 int cntg... 阅读全文
摘要:
//LCA //ST表 在线 #include #include #include #include #include #include #define maxn 500001 using namespace std; int n,m,cnt,root,head[maxn],depth[maxn]; int order[2*maxn],first[maxn];//order[x]dfs中第x次... 阅读全文