图论
文章平均质量分 81
iot_xiaohe
这个作者很懒,什么都没留下…
展开
-
hdu 1863 最小生成树
http://acm.hdu.edu.cn/showproblem.php?pid=1863/*kruskal算法: 先把所有路线按权值排序,然后从小到大遍历每一条路线,如果路线的两端尚没有连通,就把该路线连通,并更新已连通路线的长度和数目,最后如果 ”已连通路线数目=端点数-1” 则已连通路线长度为最小生成树。*/#include#include原创 2013-03-16 12:40:16 · 928 阅读 · 0 评论 -
hdu 1498 二分图—最小点覆盖
http://acm.hdu.edu.cn/showproblem.php?pid=1498/*题目大意:有 n*n 的矩阵中放着 1-50 种气球,每次只能毁掉一行或者一列。求 k 此操作后那些气球不能被全部毁掉。解题思路:对于每一种给定的color,当 map[i][j] = color 时可以认为存在一条 i—j 的路径,这样就可以构建一个二分图,二分图的两个点集分别是该颜色气原创 2013-03-27 11:16:35 · 983 阅读 · 0 评论 -
hdu 1285 拓扑排序
http://acm.hdu.edu.cn/showproblem.php?pid=1285 最简单的拓扑排序 拓扑排序方法如下: (1)从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它. (2)从网中删去该顶点,并且删去从该顶点发出的全部有向边. (3)重复上述两步,直到剩余的网中不再存在没有前驱的顶点或者所有的点都排序完毕为止.#incl原创 2013-03-19 15:22:47 · 1490 阅读 · 0 评论 -
hdu 3342 拓扑排序
http://acm.hdu.edu.cn/showproblem.php?pid=3342题目大意:在n个人中间存在m条师徒关系,且师徒关系具有传递效应,判断这些关系是否合理;思路1:若关系不合理,必定存在环路。用最短路的floyd算法找出所有可以联系的人,如果一个人与自己有联系,则说明存环路。思路2:对n个点按给出的关系进行拓扑排序,若排序完成则说明不存在环路,否则存在环路。方原创 2013-04-27 08:15:44 · 982 阅读 · 0 评论 -
hdu 1874 最短路
http://acm.hdu.edu.cn/showproblem.php?pid=1874 最短路模板题 方法一:Floyd算法。代码超简单,用到了动态规划的思想,能计算出任意两点的最短路,计算多源最短路时很方便。只是太耗时了,小心TLE同类型题:poj3660#include#include#define N 202#define Ma原创 2013-03-17 02:41:45 · 1214 阅读 · 0 评论 -
hdu 2145 最短路
http://acm.hdu.edu.cn/showproblem.php?pid=2145题目大意:有n个点,m个人,k条有向路,给出一个终点S,m个人的起点和速度,求最先到达终点者,若“同时”到达谁的距离远谁胜,若“同时同距离”谁的编号大谁胜;思路:从终点开始用一次Dijkstra,将m个人的时间,距离,编号记入结构result中,按要求排序输出;#include#include原创 2013-04-22 09:53:58 · 825 阅读 · 0 评论 -
hdu 2255 二分图—最优匹配
http://acm.hdu.edu.cn/showproblem.php?pid=2255/*最优匹配:使二分图的边权和最大的完备匹配。(如果二分图的两个点集不相等可以通过加 ’点‘ 和 ’权值为0的边‘ 实现转化)相关概念可行顶标:若L(x)是顶点x对应的顶标值。可行顶标对于图中的每条边(x,y)都有L(x)+L(y)>=w(x,y)相等子图:只包含L(x)+L原创 2013-03-28 11:53:54 · 1104 阅读 · 0 评论 -
hdu 2063 二分图—最大匹配
http://acm.hdu.edu.cn/showproblem.php?pid=2063设G=(V,E)是一个无向图。如顶点集V可分区为两个互不相交的子集V1,V2之并,并且图中每条边依附的两个顶点都分属于这两个不同的子集。则称图G为二分图。二分图也可记为G=(V1,V2,E)。给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是原创 2013-03-25 16:48:29 · 1225 阅读 · 0 评论 -
hdu 2444 二分图判定+最大匹配
http://acm.hdu.edu.cn/showproblem.php?pid=2444题目大意:有n个人之间有m对互相认识,问能否将所有人分成两组,同一组的任意两人互不认识。若不能分组输出“No”,若能分组计算并输出有最多有多少对人互相认识;思路:先用DFS进行染色,判断能否分成两组组(即能否构成二分图),如果可以求二分图的最大匹配;#include#include#in原创 2013-05-03 08:11:21 · 1233 阅读 · 0 评论