图论
文章平均质量分 68
yumao19921006
这个作者很懒,什么都没留下…
展开
-
网络流问题 最大流 ford-fulkerson算法 edmonds-karp算法
可行流: 即多条弧的集合,且每条弧的流量为非负的,且不超过该弧的容量;流入原点的流量等于流出终点的流量。最大流: 即网络中的流量最大的可行流。 最大流的求法:即由原网络得到残量网络,再找到残量网络中的增广路,根据增广路求最大流。步骤: 1. 找到残量网络中的一条增广路。 2. 求出该增广路上的最小的流量值,使各个弧的容原创 2013-01-24 11:17:59 · 2241 阅读 · 0 评论 -
bellman-ford 算法 spfa 算法 实例 poj 3259
#include#includeusing namespace std;#define max 100000struct side{ int start; int end; int value;};side a[5000];int ver[500];int m1,m2,m3;bool bellman(){原创 2013-01-24 11:17:56 · 388 阅读 · 0 评论 -
图 poj 1511
Invitation CardsTime Limit: 8000MS Memory Limit: 262144KTotal Submissions: 14626 Accepted: 4727DescriptionIn the age of television, not many people attend theater p原创 2013-01-24 11:18:43 · 258 阅读 · 0 评论 -
floyd 求最小环 poj 1734
Sightseeing tripTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3649 Accepted: 1400 Special JudgeDescriptionThere is a travel agency in Adelton town o原创 2013-01-24 11:19:35 · 463 阅读 · 0 评论 -
poj 1860 最短路径变形
Currency ExchangeTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 14000 Accepted: 4808DescriptionSeveral currency exchange points are working in our city.原创 2013-01-24 11:19:44 · 275 阅读 · 0 评论 -
图论:求割顶和块
/先通过一道题目:存在n个通讯站,它们之间可以相互通讯(直接或间接),若其中的一个通讯站损坏,那么是否会影响正常工作?可以将这些通讯站分成几个子站,使得每个子站内部只损坏一个通讯站时还可以正常工作?题目抽象:通讯站以及他们之间的直接联系为无向图,通讯站为顶点,联系为边,则第一问求的是:去掉一个点以及它所连的边后,该无向图的连通性会被破坏,求这样的点集(也就是割顶)。第二原创 2013-03-02 13:31:01 · 1464 阅读 · 1 评论 -
图 求强连通分支子图
强连通分支,在有向图中,如果任意两个点能够互相联系,那么这就称为强连通分支;给定一个有向图,它不一定是强连通的,但一定可以分为多个强连通分支,这里说明怎样求得一个有向图中最少的强连通分支。还是应该从dfs下手;每个强连通分支中,都有一个点是dfs中子树的根;也就是说,每个强连通分支它中的节点都在一个树中,而出来树这个条件,强连通分支应该还有其他的条件:为每个节点设置一个dfn(原创 2013-03-10 17:41:21 · 2366 阅读 · 0 评论 -
图论 极大强连通分支
发现在有向图中极大强连通分支的另一种求法:算法思想:从图中任意取一个点,将所有与该点可以互通的点形成一个点集,加上该点,以及这些点之间的边就是图的一个极大强连通分支;接下来,从图中继续取点,重复同样的操作,直到点都被取完为止。如果a与点b互通,那么以a为边的尾,可以通到b,而且以b为头;并且以a为头,并且存在通路,以b为尾;算法步骤:1.从图中任取一点没有被标记成集原创 2013-03-13 22:53:30 · 1939 阅读 · 0 评论 -
图论 边数最小的m连通子图
有n个通讯站,如果想要达到敌人炸毁m个通讯站后,才会中断联系,怎样设置才能达到要求,并且使通讯在之间的连接数最小? 这种问题叫做边数最小的m连接子图; 其实,如果再把边上加上权,m=1,求最小的花费,那么就是图中的最小生成树的问题了。 对于这类问题,我们需要分奇偶来讨论: m为偶数时(m=2*r): i-r m为奇数时(m=2*r+1): 先原创 2013-03-25 22:49:29 · 2222 阅读 · 0 评论 -
图论 极小支配集
存在v1、v2共n个城,现建立一个通讯系统。从这些n个城中选择几个城池,在那些城池中建立通讯站,使这些城可以和其他城镇相连;为了节省成本,希望城池数最小;有时还想在成本最小的情况下,建造两个或者更多的城镇。这就是明显的求极小支配集的问题;下面是关于支配集的定义:支配集:如果一个集合中的节点可以到达图中其他的所有节点,那么这个集合叫做支配集;极小支配集:一个支配集中去掉任意节点,都不原创 2013-03-28 09:28:08 · 3371 阅读 · 0 评论 -
poj 1144
题意:给定一组点集以及边集,并且保证组成的图一定是联通的。求点集,其中的点任意删去一个点以及其所连接的边,都会造成图的不连通。输入数据比较麻烦:每组例子,先输入一个n,代表点的个数;然后输入一个数,该行都与这个数存在边,一直到一行的第一个数都为0时,这个图就结束了。 其实,要求的点集(这里是个数)就是求割点的个数 至于割点要怎么求,参照之前写的怎样求割点的算法:原创 2013-04-21 18:48:37 · 685 阅读 · 0 评论 -
hdu 2444
二分图的判断以及二分图的最大匹配题意:给定n个学生,他们之间可能互相认识,首先判断能不能将这些学生分为两组,使组内学生不认识;现想将学生两两分组,且保证每一组的学生都认识,这样分组可达到的最大组数为多大?首先,利用交叉染色法判断一个图是否为二分图。。。用DFS就可;取任意点,标记,搜索与其有边的点,如果该点没有被标记,则将其标记为相反,继续向下搜索;如果被标记了,则原创 2013-04-25 13:24:27 · 1791 阅读 · 0 评论 -
最小生成树问题
hdu 1233 还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13138 Accepted Submission(s): 6016Problem Description某省调查乡村交通状况,得到的统计表中列出了原创 2013-01-24 11:17:38 · 324 阅读 · 0 评论 -
再读dijkstra算法 以及运用
在《图论算法及程序设计》中,这个算法没有明显的提出,叫:最短路的标号法。再一次发现,我对dijkstra的理解还是不够啊~其关键在于贪心。。每一次选出的特定点到其他点的最短路都是每一次的最优解,也就是说,求出来之后,最短路就不会再改变了,要这样想:既然每一次都是得到的最优值,那么会使下一次得到的也是最优值。。。不知道说清楚没有。。。编程的代码思路就是:找到已经得到的最优原创 2013-01-24 11:21:05 · 516 阅读 · 0 评论 -
dinic 算法求最大流
层次图: 每一点的层次表示为由原点到该点的最短路径(指的是所要经历的路径的条数)为该点的层次。 每个顶点用层次来表示的图称为层次图。dinic 基本思想: 由层次图代替剩余图来寻找最短增广路。 步骤: 1. 构成剩余图。 2. 用bfs来形成层次图。 3. 利用层次图用DFS来寻找增广路。原创 2013-01-24 11:18:02 · 321 阅读 · 0 评论 -
图 poj 1985
Cow MarathonTime Limit: 2000MS Memory Limit: 30000KTotal Submissions: 2672 Accepted: 1317Case Time Limit: 1000MSDescriptionAfter hearing about the epidemic of原创 2013-01-24 11:18:39 · 431 阅读 · 0 评论 -
最大流 poj 3436
ACM Computer FactoryTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4145 Accepted: 1391 Special JudgeDescriptionAs you know, all the computers used原创 2013-01-24 11:19:42 · 341 阅读 · 0 评论 -
最大流模板 Ford-Fulkerson and Dinic
自己码的哟~Ford-Fulkerson: 算法: 用cup[][]记录流量; 一开始就用初始的图做残流网络 用BFS找到一条最短的从起点到终点的路径,并用a[]记录且标记这条路径上的最小流量 更新残流网络图,正向的减去最小流量,反向的加上最小流量; 累加最小流量做总和;原创 2013-01-24 11:20:07 · 295 阅读 · 0 评论 -
并查集问题
hdu 1213 畅通工程Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数原创 2013-01-24 11:17:36 · 273 阅读 · 0 评论 -
二分图 匈牙利算法
概念:(二分图中) 1. 最大匹配数: 任意两条边不相交于同一顶点的边数。 2. 最小覆盖: 用最少的点让每一条边都至少和其中的一个点相关联。(不大于图中的小的一个点集数) 且点数=最大匹配数 3. 最大独立集: 两两之间没有边的点的最大数量。(最小为图中大的一个点集数) 点数=总点数-最大匹配数 4. 最小路径覆盖: 用最小不相交的路径覆原创 2013-01-24 11:18:04 · 274 阅读 · 0 评论 -
poj 1251
Jungle RoadsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 15866 Accepted: 7121DescriptionThe Head Elder of the tropical island of Lagrishan has a proble原创 2013-01-24 11:20:19 · 340 阅读 · 0 评论 -
次小生成树 (poj 1679)
次小生成树建立在最小生成树的基础上;由于最小生成树的性质所决定,对于最小生成树任何的两点之间再加一条边,就会形成一个环;那么,也就是说,加上一条边后,减去一条除刚加上的一条边外权值最大的边,又会构成一棵生成树;这样,将所有最小生成树上没有的边按上述遍历一次后,得到生成树的最小的权值即为该图的次小生成树。其中,最大的权值可由prime求最小生成树时顺便求出:a[x][j]=m原创 2013-01-24 11:20:22 · 338 阅读 · 0 评论 -
图论 欧拉回路
欧拉回路: 描述:如果一个图中,存在一条回路,不重复的经过所有的边,我们称其为欧拉回路。 欧拉回路的要求:无向图:图中没有孤立的点且图中的点的度数均不为奇数。有向图:图中没有孤立的点且图中点的出度等于入度。也就是说,只要图中存在欧拉回路,那么从任何点出发,都可以经过一条欧拉回路回到本身。 找欧拉回路:根据DFS(边)的性质,回溯是记录,可以求原创 2013-01-24 11:20:39 · 556 阅读 · 0 评论 -
图论 最短路 poj 1062
昂贵的聘礼Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 27723 Accepted: 7777Description年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探原创 2013-01-24 11:19:23 · 277 阅读 · 0 评论 -
DAG图上单源最短路径 poj 3249
Test for JobTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 7475 Accepted: 1634DescriptionMr.Dog was fired by his company. In order to support his famil原创 2013-01-24 11:19:32 · 331 阅读 · 0 评论 -
hdu 3118
ArbiterTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 649 Accepted Submission(s): 330Problem DescriptionArbiter is a kind原创 2013-05-22 23:19:54 · 886 阅读 · 0 评论