![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 71
cstirling
这个作者很懒,什么都没留下…
展开
-
求点连通度,边连通度
图的连通度分为点连通度和边连通度: (1)点连通度:只许删点,求至少要删掉几个点(当然,s和t不能删去,这里保证原图中至少有三个点); (2)边连通度:只许删边,求至少要删掉几条边。 并且,有向图和无向图的连通度求法不同,因此还要分开考虑(对于混合图,只需将其中所有的无向边按照 无向图的办法处理、有向边按照有向图的办法处理即可)。【1】有向图的边连通度: 这转载 2016-07-24 10:28:20 · 13931 阅读 · 0 评论 -
最短路模板
dijkstra+heap优化int n,m,vis[N];vector >g[N];ll dis[N];void Dijkstra(int s){ priority_queue >q; memset(dis,127,sizeof(dis)); memset(vis,0,sizeof(vis)); q.push(MP(0,s)); dis[s]=原创 2017-01-09 19:16:42 · 327 阅读 · 0 评论 -
tarjan&&LCA模板
//求强连通分量int n,m;int dfn[N],low[N],instk[N],sccno[N],index,scc_cnt;stack stk;vector e[N],scc[N];void Init(){ for(int i=0;i<N;i++) dfn[i]=low[i]=sccno[i]=instk[i]=0; memset(e,0,siz原创 2017-01-02 18:51:55 · 391 阅读 · 0 评论 -
最大流Dinic模板
const int N=210;const int M=40010*2;const int inf=0x3f3f3f3f;struct Edge{ int v,cap,nxt;}e[M];int src,des,dis[N],head[N],ecnt;int n,m;void Addedge(int u,int v,int w){ e[ecnt].v=v;原创 2017-04-27 12:40:06 · 442 阅读 · 0 评论 -
树链剖分&树状数组区间加减区间求和模板
#pragma comment(linker,"/STACK:100000000,100000000")#include#include#include#includeusing namespace std;const int N=50010;#define ll long longint n,m,p,a[N];int ti[N],idx,par[N],son[N],sz[N],原创 2017-04-26 22:55:48 · 393 阅读 · 0 评论 -
二分图匹配模板
二分图最大匹配①Hopcroft-Carp算法时间复杂度O(sqrt(n)*m)struct edge{ int v,nxt;}e[M];int n,m;int head[N],e_cnt;int mx[N],my[N],dx[N],dy[N],vis[N],dis;queue q;void Init(){ e_cnt=0; memset(v原创 2017-01-09 22:42:18 · 456 阅读 · 0 评论 -
最小生成树模板
Kruskalstruct edge{ int u,v,w; edge(int _u=0,int _v=0,int _w=0):u(_u),v(_v),w(_w){} bool operator < (edge t) const {return w<t.w;}}e[M];int n,m;//n是点数,m是边数,点编号从1开始,边编号从0开始int par[N];原创 2017-01-02 17:57:45 · 451 阅读 · 0 评论 -
HDU 3594 Cactus 【强连通】
题目:点击打开链接题意:求一个图是否为仙人掌图分析:仙人掌图的详细说明见链接:点击打开链接总结下来仙人掌图有三点性质:①没有横向边②对于父节点u和其所有子节点v,low[v]③对于父节点u和其所有子节点v,low[v]对于性质①,可以在dfs时,对于每次引出的一个v,判断dfn[v]>dfn[u]是否成立,若成立,则表示点v是之前已经遍历过的一个点且v是u的一个后继原创 2016-12-08 13:55:56 · 269 阅读 · 0 评论 -
CodeForces 734E Anton and Tree 【连通缩点】
题目:点击打开链接题意:给出n个点,n-1条边构成一棵生成树,每个点都有黑白两种颜色,每次改变颜色都能使同颜色的相邻点改变颜色,求最小改变颜色的次数分析:因为每次改变颜色都能使同颜色的相邻点改变颜色,所以相邻且颜色相同的点可以缩成一点,重新建图,构成黑白相间的点的树,设树的直径(任意两点的最远距离)为d,因为每次改变颜色都会使它与相邻的点的颜色相同,所以取树的直径上的点操作,共有d+1个点原创 2016-11-18 16:16:41 · 720 阅读 · 0 评论 -
KM算法模板(HDU 2255)
#include #include #include #include #include #include #include #include #include #include #include #define PR pair#define MP make_pair#define fi first#define se second#define lson l,m,r原创 2016-09-26 16:30:48 · 258 阅读 · 0 评论 -
最小割Stoer-Wagner算法模板hdu3691
全局最小割SW算法原创 2016-07-24 10:05:13 · 286 阅读 · 0 评论 -
最小费用流模板
const int N=510;const int M=1010;const ll INF=0x3f3f3f3f3f3f3f3f;struct Edge{ int u,v,nxt; ll cap,flow,cost;}g[M*6];int n,m,cnt;int maxflow,p[N],head[N];ll d[N],mincost;void Addedge(i原创 2016-09-26 16:48:57 · 257 阅读 · 0 评论