![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
AI蜗牛之家
北航烟酒僧~ 百度、腾讯自然语言处理算法工程师~
展开
-
(Prime算法)Agri-Net(12.2.1)
#include#include using namespace std;int fa[120];int get_father(int x){ if(fa[x]==x) return x; else return fa[x]=get_father(fa[x]); // return fa[x]=fa[x]==x ?x:get_father(f原创 2014-08-08 15:26:00 · 988 阅读 · 0 评论 -
Machine Schedule(最小覆盖)
其实也是个最小覆盖问题DescriptionAs we all know, machine scheduling is a very classical problem in computer science and has been studied for a very long history. Scheduling problems differ widely in the原创 2015-11-17 10:19:33 · 929 阅读 · 0 评论 -
最大最小流整理
本篇承接上一篇文章,主要讲解最大流问题的Ford-Fulkerson解法。可是说这是一种方法,而不是算法,因为它包含具有不同运行时间的几种实现。该方法依赖于三种重要思想:残留网络,增广路径和割。本文将会详细介绍这些内容,下一篇文章我们提供一种该方法的Java实现。在介绍着三种概念之前,我们先简单介绍下Ford-Fulkerson方法的基本思想。首先需要了解的是Ford-Fulkerson是一种原创 2015-12-05 14:49:05 · 2854 阅读 · 0 评论 -
POJ 3308 Paratroopers(最小割EK(邻接表&矩阵))
DescriptionIt is year 2500 A.D. and there is a terrible war between the forces of the Earth and the Mars. Recently, the commanders of the Earth are informed by their spies that the invaders of M原创 2015-11-28 11:21:39 · 1087 阅读 · 0 评论 -
Air Raid(最小路径覆盖)
DescriptionConsider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town's原创 2015-11-17 11:50:02 · 835 阅读 · 0 评论 -
强连通分量(模板)
对图深度优先搜索,定义DFS(u)为u在搜索树(以下简称为树)中被遍历到的次序号。定义Low(u)为u或u的子树中能通过非父子边追溯到的最早的节点,即DFS序号最小的节点。根据定义,则有:Low(u)=Min{DFS(u)DFS(v) (u,v)为后向边(返祖边) 等价于 DFS(v)#include#include#include#include#include#defin原创 2015-11-24 12:46:16 · 930 阅读 · 0 评论 -
图基本概念
一、割点、割边、双连通分支概念挂接点(Articulation point)就是割点(Cut Vertex)桥(Bridge)就是割边(Cut Edge)割点:v为割点,则去掉v后,图的连通分支增加。割边:v为割边,则去掉v后,图的连通分支增加。割点形式化的定义:a是割点当且仅当存在两个点u,v使得u到v的每条路径都会经过a。(去掉a后,u到v没有路径)边双连通分支原创 2015-11-24 11:20:59 · 1169 阅读 · 0 评论 -
Network of Schools(强连通分量缩点(邻接表&矩阵))
DescriptionA number of schools are connected to a computer network. Agreements have been developed among those schools: each school maintains a list of schools to which it distributes software (th原创 2015-12-05 10:38:29 · 966 阅读 · 0 评论 -
Play on Words(半欧拉图)
打开题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1116原创 2014-11-14 22:22:15 · 1409 阅读 · 0 评论 -
POJ3352 Road Construction (边双连通分量)
Road ConstructionTime Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmitStatusDescriptionIt's almost summer time, and that means that it's almost summer cons原创 2015-11-24 13:29:44 · 1160 阅读 · 0 评论 -
Asteroids (最小覆盖)
题目很简单,但是需要推到出二分图最大匹配 = 最小覆盖最小覆盖:证明过程http://blog.sina.com.cn/s/blog_51cea4040100h152.htmlDescriptionBessie wants to navigate her spaceship through a dangerous asteroid field in the shap原创 2015-11-16 18:42:05 · 792 阅读 · 0 评论 -
最小点覆盖和二分图最大匹配(证明)
转自:http://blog.sina.com.cn/s/blog_51cea4040100h152.html想当年,ccy学二分图匹配的时候学完匈牙利算法,做了一个place the robts后,就没弄了,这次,看吴老师给高二新做的ppt,才知道,自己学到的东西又是多么滴少。ccy哭~~~~~~~~~~(不要安慰我)~~~~ 当再看ppt的一道题下有个结论最小覆盖点==最原创 2016-05-07 15:02:58 · 1749 阅读 · 0 评论 -
过山车(匈牙利算法)
这是一道经典的二分图和匈牙利算法的土木 http://blog.csdn.net/error/404.html?from=http%3a%2f%2fblog.csdn.net%2fu014665013%2farticle%2fdetails%2f40515669原创 2014-10-27 21:34:57 · 1393 阅读 · 0 评论 -
(深度搜索)The House Of Santa Claus
#include#include #include using namespace std;int map[6][6]; //在这里注意第一行时没有用的,全部设置为0void makemap(){ memset(map,0,sizeof(map)); for(int i=1;i<=5;i++) for(int j=1;j<=5;原创 2014-08-06 18:26:03 · 1255 阅读 · 0 评论 -
匈牙利算法与二分图
匈牙利算法是解决寻找二分图最大匹配的。 (一)预备知识 什么是二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 什么是匹配:把上图想象成3男4女搞转载 2014-10-27 21:30:49 · 1018 阅读 · 0 评论 -
(拓扑排序)||(全排序)Following Orders(11.3.1))
#include #include #include using namespace std;int len1,len2;string t;char ch[200], limit[200];int cmp(const void* p, const void* q) { return *(char*)p - *(char*)q;}//比较函数,从小到大排序原创 2014-08-07 18:09:51 · 1148 阅读 · 0 评论 -
棋盘问题
题目网址:http://acm.pku.edu.cn/JudgeOnline/problem?id=1321其实就是个神搜的题目,以前做过,但是在拿到题的时候还是会感觉有点我从下手,所以还是多做点就好了吧具体思路: 棋盘问题, 棋子摆放的位置只能是#, 且不能同行和同列. 由于我采用的是按行递增的顺序来搜索的, 因此不可能出现同行的情况, 对于同列的情况, 我设置了一个变量col[], 来保存列的原创 2015-02-06 15:42:28 · 961 阅读 · 0 评论 -
二分图基础
二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配文本内容框架:§1图论点、边集和二分图的相关概念和性质§2二分图最大匹配求解匈牙利算法、Hopcroft-Karp算法§3二分图最小覆盖集和最大独立集的构造§4二分图最小路径覆盖求解§5二分图带权最优匹配求解Kuhn-Munkers算法§6小结每章节都详细地讲解了问题介绍转载 2015-11-16 18:38:42 · 2067 阅读 · 0 评论 -
HDU 2066 一个人的旅行(单源最短路SPFA)
Description虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大段时间,可不能浪原创 2015-12-04 19:24:58 · 824 阅读 · 0 评论 -
HDU1269 迷宫城堡(裸强连通分量)
Description为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A房间和B房间,只说明可以通过这个通道由A房间到达B房间,但并不说明通过它可以由B房间到达A房间。Gardon需要请你写个程序确认一下是否任意两个房间都是相互连通的,即:对于任意的i和j,至少存在一条路径可以原创 2015-12-04 07:02:13 · 749 阅读 · 0 评论 -
单源最短路径整理
1、单源Dijkstra#define MAX 1010#define INF 0x3f3f3f3fbool vis[MAX];int pre[MAX] ; ///记录到当前点的父节点,用来还原路径///注意开始输入的时候如果不能到达的应该初始化为INFvoid Dijkstra (int cost[][MAX] , int lowcost[],int n,int beg){原创 2015-09-02 21:55:05 · 1029 阅读 · 0 评论 -
(宽度优先搜索)A - Prime Path(11.1.1)
/*从一个图的某一个顶点V0出发,首先访问和V0相邻的且未被访问过的顶点V1、V2、……Vn,然后依次访问与V1、V2……Vn相邻且未被访问的顶点。如此继续,找到所要找的顶点或者遍历完整个图*/#include #include #include #include #include using namespace std;#define N 10010b原创 2014-08-06 11:37:51 · 1048 阅读 · 0 评论 -
图基础模板
1、判断割顶:对于根节点当然简单,当且仅当它有两个或者是更多的子节点时,他才是割顶。对于其他节点,定理:在无向图连通图G的DFS树中,非根节点u是G的割顶当且仅当u存在一个子节点v,使得v及其所有后代都没有反向边连回u的祖先#include #include #include #include #include #include #include #inclu原创 2015-09-02 19:58:51 · 754 阅读 · 0 评论