图论
尒轩窗
这个作者很懒,什么都没留下…
展开
-
训练日记
看了图论里的割点、桥、还有强连通分量。主要有以下知识点:1.求将割点删除之后,求增加的连通分量的个数,只需要在满足low[v]>=pre[u]的情况下,cnt[u]++;但是根节点如果是割点就要-12.在求割点个数的时候根节点的孩子要大于等于2,非根节点要满足low[v]>=pre[u]3.有向图可以通过增加至少max(DAG中入度为0的个数,DAG中出度为0的个数)变成强连通分量原创 2018-01-22 21:49:49 · 132 阅读 · 0 评论 -
训练日记
欧拉图:对于每个以i为根的连通分量我们记录属于该连通分量的点数目num[i]和该连通分量中奇度点的个数odd[i]. 如果num[i]==0或1,需0笔.(注意num[i]==0表示i点不是根,num[i]==1表示i点是一个孤立的点.) 如果num[i]>1且odd[i]==0 需1笔 如果num[i]>1且odd[i]>0 需原创 2018-01-23 21:38:32 · 226 阅读 · 0 评论 -
训练日记
昨天欧拉图没有看完,今天先看的欧拉图,其实就有一个知识点: 无向图是否具有欧拉通路或回路的判定 G有欧拉通路的充分必要条件为:G 连通,G中只有两个奇度顶点(它们分别是欧拉通路的两个端点)。 G有欧拉回路(G为欧拉图):G连通,G中均为偶度顶点。 有向图是否具有欧拉通路或回路的判定 D有欧拉通路:D连通,除两个顶原创 2018-01-24 21:53:47 · 146 阅读 · 0 评论 -
训练日记
今天做了好几个题,感觉自己写起代码来有很多的问题,尤其是细节问题。1.在欧拉图中用并查集是要if(u!=v)f[u]=v;如果不写条件容易超时2.再判断是否能用欧拉回路表示的时候要先用并查集findset判断是否是通路!!!!!3.欧拉图用度判断是否可以是回路或者欧拉路今天基本上就是选的欧拉图和强连通分量做的,在欧拉图上有很多问题。。。。。。。强连通分量基本上挺顺利原创 2018-01-25 21:39:49 · 113 阅读 · 0 评论 -
训练日记
今天我就做了一个PPT,晚上把之前没有看的双连通看了,还看了差分约束。对于差分约束只需要让他满足小于等于或者大于等于的关系就可以建立边。最后还要建立一个一个超级源点,让这个点跟图里的每一个点建立一个边,使图连通就行,其他的都是套用模板。对于双连通就是找割点然后把栈里的清出来一部分。最后组成双连通分量。原创 2018-01-27 22:19:05 · 122 阅读 · 0 评论 -
ISAP模板分析
概述:算法基于这样的一个事实:每次增广之后,任意结点到汇点(在残余网络中)的最短距离都不会减小。这样,我们可以利用d[i[表示结点i到汇点的距离的下界。然后再增广过程当中不断地修改这个下界。增广的时候和Dinic算法类似,只允许沿着d[i]==d[j]+1的弧(i,j)走。不难证明,d[i[满足两个条件:(1)d[t]=0;(2)对任意的弧(i,j) d[i]≤d[j]+1。因为最坏的情况就是s到...转载 2018-02-01 17:04:54 · 215 阅读 · 0 评论 -
最大流模板
好题模板http://blog.csdn.net/carryheart/article/details/52470992摘抄最大流模板:#include<iostream>#include<cmath>#include<stdio.h>#include<string.h>#include<algorithm>#in...原创 2018-04-19 21:01:25 · 160 阅读 · 0 评论