图论
suclliant
流年笑掷 未来可期
展开
-
tarjan缩点
tarjan缩点的方法:用tarjan求强连通分量,然后将同一个强连通分量中的点合成到同一个新节点中(需要借助一个belong数组)。题目链接:P3387缩点思路:先缩点,新节点的值等于强连通分量中所有节点权值之和。缩点之后就由原图得到了一张新图(其实是一棵树),然后再dfs,求出从根节点到叶子节点权值之和的最大值(dp)。代码:#include <cstdio>...原创 2019-08-12 15:17:47 · 1255 阅读 · 0 评论 -
tarjan求割点和桥(割边)
tarjan求割点和桥参考博客:tarjan求割点和桥(割边)例题:割点代码(重要的地方在代码中都有注释):#include<bits/stdc++.h>#define ll long longusing namespace std;const ll M=2e4+10,maxn=3e6+30;int dfn[M],low[M],tot;int e[M&l...原创 2019-08-12 15:20:31 · 470 阅读 · 0 评论 -
畅通工程续(最短路径,使用spfa)
题目链接:畅通工程续题意:点击上面的链接自行查看单源点最短路径,使用spfa。#include <bits/stdc++.h> //有的oj中选择c++编译失败,可以考虑换头文件或者选择G++试一下#include<cstring>#define L(x) (x<<1)#define R(x) (x<<1|1)#define ...原创 2019-08-17 11:03:03 · 142 阅读 · 0 评论