
图论
文章平均质量分 73
Ezereal
这个作者很懒,什么都没留下…
展开
-
POJ 3268 牛的最长来回时间
有编号为1-N的牛,它们之间存在一些单向的路径。给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求这些牛中所花的最长的来回时间是多少。每头牛返回的最短时间很简单就可以算出来,这相当于从目标牛为起点求单源最短路径。但每头牛出发到目标牛的最短时间无法直接算出来,稍微转换一下,发现这个最短时间其实可以通过把所有的边取反向,然后再从目标牛求一次单源最短路径得到。得到这两个最短原创 2016-02-06 18:25:57 · 517 阅读 · 0 评论 -
POJ 2230 Watchcow (欧拉回路)
题意:对一有向欧拉图,求欧拉回路,即从点s出发,最终到达点s,每条边走且仅走一次。分析:对欧拉有向图,从点s开始深搜,直到到达点t,而且不能继续向下走为止,则s=t。为什么?用反证法可以证明。假设s!=t,则存在下面这种路线(注意每个点要出现两次):s->......->s->......->t,即s的入度为1,而出度为2,这与有向欧拉图的性质相违背,因此假设不成立。注意建图的时候要变单向为双原创 2016-03-19 19:35:47 · 446 阅读 · 0 评论 -
CodeForces 209C Trails and Glades(欧拉回路判断+并查集计算联通分量)
题意:判断能否构成欧拉回路,不能的话输出最小需要添加多少条边题解:并查集处理出联通分量,输入时处理出奇度数点个数,结果即为 奇度数点个数/2+不含奇度数点的联通分量个数,1节点自动算作一个联通分量 不管是否有边连接#include #include #include #include #include #include #include #include #include原创 2016-03-20 17:40:29 · 955 阅读 · 0 评论 -
AIM Tech Round (Div. 2) C. Graph and String 二分图染色
转载自:http://www.cnblogs.com/qscqesze/p/5183085.html题意给你一个图,然后让你给这些图标号,问你有没有一个合法的标号标号就只能标a,b,c。然后a会和ab连边,b和abc都连边,c和bc连边有解就任意输出一个就好题解:我们首先把那种边集有n-1的点染成b,然后再随便选一个没有染成b的点当成a,然后转载 2016-08-29 08:34:17 · 680 阅读 · 0 评论 -
Bron–Kerbosch算法-最大独立集与最大团
Bron-Kerbosch 算法计算图的最大全连通分量(团clique) 最大独立集: 顶点集V中取 K个顶点,其两两间无连接。最大团: 顶点集V中取 K个顶点,其两两间有边连接。最大团中顶点数量 = 补图的最大独立集中顶点数量 就可以通过求其补图中最大团中顶点数量,就可得出原图中最大独立集中顶点数量了.对于求解 最大团中顶点数量 的搜索过程中用到的剪枝,如下1. 剪枝1转载 2016-10-16 21:37:05 · 2971 阅读 · 0 评论 -
Codeforces Round #375 (Div. 2) E. One-Way Reform 欧拉路径
题意给你一个无向图,然后让你给边定向,使得入度等于出度的点最多。题解:考虑欧拉图,只要所有点的度数为偶数就可以了。那么答案就是奇数度数的点集,然后我们不停的dfs,把欧拉路都画出来就行了。#includeusing namespace std;const int maxn = 210;sets[maxn];vector >ans;int n,m;vo转载 2016-10-18 15:51:22 · 364 阅读 · 0 评论