随笔分类 - 图
摘要:Dinic模板 1 int n, m, T; 2 int st, en; 3 4 const int INF=0x3f3f3f3f; 5 const int MAXN = 1122;//点数的最大值 6 const int MAXM = 355555;//边数的最大值 7 8 s...
阅读全文
摘要:二分图匹配题意: 。。。 看了半天我们可以从rally点出发到最近的rally点, 如果有treasure在这两个rally点的最短路径上, 我们可以拿走他。思路也可以参见http://blog.csdn.net/wall_f/article/details/8990937这种分析问题的思路太值得学...
阅读全文
摘要:1 /*Author :usedrose */ 2 /*Created Time :2015/8/1 23:39:01*/ 3 /*File Name :2.cpp*/ 4 #pragma comment(linker, "/STACK:1024000000,1024000000") 5 #i...
阅读全文
摘要:无向图一个无向图存在欧拉路当且仅当该图是连通的且有且只有2个点的度数是奇数,此时这两个点只能作为欧拉路径的起点和终点。若图中没有奇数度的点,那么起点和终点一定是同一个点,这样的欧拉路叫做欧拉回路因为DFS本身就是一个入栈出栈的过程,所以我们直接利用DFS的性质来实现栈,其伪代码如下:DFS(u): ...
阅读全文
摘要:无向图割边割点算法而当(u,v)为树边且low[v]>dfn[u]时,表示v节点只能通过该边(u,v)与u连通,那么(u,v)即为割边。 1 void dfs(int u) { 2 //记录dfs遍历次序 3 static int counter = 0; 4 5 ...
阅读全文
摘要:一定要补上 o(╯□╰)o。。5327 签到。。 1 /*Author :usedrose */ 2 /*Created Time :2015/7/31 22:36:32*/ 3 /*File Name :2.cpp*/ 4 #include 5 #include 6 #include 7 ...
阅读全文
摘要:首先对于所有的无向边,我们使用并查集将两边的点并起来 若一条边未合并之前,两端的点已经处于同一个集合了,那么说明必定存在可行的环(因为这两个点处于同一个并查集集合中,那么它们之间至少存在一条路径) 如果上一步没有判断出环,那么仅靠无向边是找不到环的 考虑到,处于同一个并查集集合中的点之间必定存在一条...
阅读全文
摘要:判断图中是否含有奇环或者偶环二分图的染色思想 + 胡搞记住。。如果一图是二分图,那么它一定没有奇环。如果一图没有奇环的话,那么它可以是二分图。c++提交, 不加黑科技要爆栈。。大牛的DFS http://www.cnblogs.com/vb4896/p/4500177.html 1 void Dfs...
阅读全文
摘要:新技能get二分图染色居然可以用来判断奇偶环。。如果能构成二分图,说明没有奇环对于任意二分图,其包含的环一定全部是偶环!(充要可证)可以证明,含有奇数条边的环一定有两个在相同集合内的点有边相连!也就是说——二分图的bfs子树一定不含奇环!下面讨论摘自http://www.cnblogs.com/sa...
阅读全文
摘要:题意:给出n个字符串,求是否存在一种新的字母大小顺序,使这n个字符串满足这种顺序。思路:注意每相邻两个串相比较时,从头到尾,只要比较到相同位置,字母不同,就结束了,不要继续向后比较了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 ...
阅读全文
摘要:基础知识:最大独立集: 顶点集V中取 K个顶点,其两两间无连接。最大团: 顶点集V中取 K个顶点,其两两间有边连接。最大独立集 = 补图的最大团。 (补图 = 完全图 - 原图)挺详细的解释:http://www.cnblogs.com/yefeng1627/archive/2013/03/31/2...
阅读全文
摘要:思路: 建立最小生成树的图,之后进行枚举边(两点)。然后去掉原来生成树上的边。 去掉一条遍之后,原图为两棵树。A - 分别为两棵树中的最大人口和B - 生成树边长之和减去一条生成树边的长度。 1 #include 2 #include 3 #include 4 #include 5 #in...
阅读全文
摘要:题意:n个点,n-1条路,求出从点s出发到每一个点必须经过的前一个点,到自身为-1思路:从s出发遍历一遍图就可以了,开flag数组记录下来每一个点的必经的点。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #i...
阅读全文
摘要:关于怎么建图,自己还真是想不出来。我觉得就是找到每个方老师所在的scc里的所有缘分吧。。转自http://www.cnblogs.com/whatbeg/p/3765621.html做法:建图,每个方老师和它想要的缘分之间连一条有向边,然后,在给出的初始匹配中反向建边,即如果第i个方老师现在找到的是...
阅读全文
摘要:参考的大牛的思路和代码思路: 每次经过一个强连通分量时,都可以走完该分量从而使抢得的钱最多,可以把每个强连通分量缩点,用总的钱数代表该点的值。然后重新遍历新图,遇到网吧可以更新一下结果。 1 #include 2 #include 3 #include 4 #include 5 #incl...
阅读全文
摘要:1 vector G[MAXN]; 2 int dfn[MAXN], low[MAXN], instk[MAXN], sccno[MAXN], ans[MAXN]; 3 stack S; 4 int Time, cnt ,n, res; 5 void Tarjan(int u) 6 { 7 ...
阅读全文
摘要:转自http://www.gonglin91.com/dfs-graph-edge/树边,前向边,后向边,横叉边,应该说,不是一个图本身有的概念,应该是图进行DFS时才有的概念。图进行DFS会得到一棵DFS树(森林),在这个树上才有了这些概念。对图进行DFS,可以从任意的顶点开始,遍历的方式也是多样...
阅读全文
摘要:题目1 : 二分图三·二分图最小点覆盖和最大独立集时间限制:10000ms单点时限:1000ms内存限制:256MB描述在上次安排完相亲之后又过了挺长时间,大家好像都差不多见过面了。不过相亲这个事不是说那么容易的,所以Nettle的姑姑打算收集一下之前的情况并再安排一次相亲。所以现在摆在Nettle...
阅读全文
摘要:判断是否为二分图算法:选取一个未染色的点u进行染色遍历u的相邻节点v:若v未染色,则染色成与u不同的颜色,并对v重复第2步;若v已经染色,如果 u和v颜色相同,判定不可行退出遍历。若所有节点均已染色,则判定可行。 1 #include 2 #include 3 #include 4 #include...
阅读全文
摘要:转自http://www.cnblogs.com/whatbeg/p/3765625.htmlTarjan算法。1.若u为根,且度大于1,则为割点2.若u不为根,如果low[v]>=dfn[u],则u为割点(出现重边时可能导致等号,要判重边)3.若low[v]>dfn[u],则边(u,v)为桥(封死...
阅读全文

浙公网安备 33010602011771号