
图论
文章平均质量分 81
小猫dd
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
nyoj349 poj1094 Sorting It All Out(拓扑排序)
题目大意输入n,m。 一共有n个字母(从A开始), m行语句每个语句“x﹤y”,说明x,y之间的偏序关系。让你判断是否可以通过这些关系得到一个唯一的升序序列,若能则输出这个序列并指出通过前多少条语句得出的,如果n个字母间存在矛盾,输出相应语句并指出那条语句开始出现矛盾的。如果没有唯原创 2015-04-23 22:38:51 · 553 阅读 · 0 评论 -
hdoj1325 Is It A Tree?
hdoj1325 题目链接题意: 多组测试数据, 每组数据有多个数对, 表示一条有向边(即第一个数是第二个数的父节点), 以 0,0 为一组测试数据结束标志。当输入-1,-1时测试结束。 从那些给出的信息中判断是否是一棵树。 分析: 1、只可以有一个根节点, 也可以是一个点都没有的空树; 2、除了根节点, 每个点只有一个父节点。 3、因为只可以有一个父节点, 所以我们可以把一个合法的关系对原创 2015-05-19 20:19:33 · 599 阅读 · 0 评论 -
poj2594 (最小路径覆盖 + floyd)
题目链接题目大意: 一个有向图中, 有若干条连接的路线, 问最少放多少个机器人,可以将整个图上的点都走过。 最小路径覆盖问题。分析: 这时最小路径覆盖问题, 最小路径覆盖 = |V| - 最大匹配数。 (有关最小路径覆盖,最大匹配问题,相关概念不懂得点这里) 当然做这道题还有一个坑!! 如果有向图的边有相交的情况,那么就不能简单的对原图求二分匹配了 详细讲解看这#include<iost原创 2015-06-02 21:31:14 · 1760 阅读 · 0 评论 -
poj3660 Cow Contest(Floyd-Warshall方法求有向图的传递闭包)
题目链接题意: 有n头牛, 给你m对关系(a, b)表示牛a能打败牛b, 求在给出的这些关系下, 能确定多少牛的排名。分析: 在这呢先说一下关系闭包: 关系闭包有三种: 自反闭包(r), 对称闭包(s), 传递闭包(t)。 先画出 R 的关系图,再画出 r(R), s(R), t(R) 的关系图。原创 2015-06-01 22:17:09 · 850 阅读 · 0 评论 -
最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)
在讲述这两个算法之前,首先有几个概念需要明白:二分图: 二分图又称二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A, j in B), 则称图G是二分图。 匹配: 给定一个二分图,在G的一个子图G’中,如果G’的边集中的任意两条边都不依附于同一原创 2015-06-02 20:42:03 · 1841 阅读 · 0 评论 -
Floyd-Warshall算法详解(转)
Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。我们平时所见的Floyd算法的一般形式如下:1 void Floyd(){2 int i,j,k;3 for(k=1;k<=n;k++)4 for(i=1;i<=n;i++)5 for(j=1;j<=n;j++)6转载 2015-05-29 21:32:10 · 13748 阅读 · 0 评论 -
hiho拓扑排序专题 ——第四十八、四十七周
拓扑排序·一分析: 此题就是求一个有向图中是否存在环。 如存在环则输出”Wrong”, 若不存在环, 说明课程安排的合理,输出”Correct”。 题中的提示说的已经十分清楚了。总的来说就是: ① 找出入度为0的点(说明该点没有前驱),把该点放入集合T中。 把所有从该点出发的边都删除;② 遍历剩余的点, 找出入度为0 的点, 重复①操作。 ③直到不存在入度为0的点。 结束。如果此时集合T中原创 2015-06-18 14:06:42 · 544 阅读 · 0 评论 -
poj1274 匈牙利算法 二分图最大匹配
poj1274题意: 有n个奶牛, m个畜舍, 每个畜舍最多装1头牛,每只奶牛只有在自己喜欢的畜舍里才能产奶。 求最大产奶量。 分析: 其实题意很明显, 二分图的最大匹配, 匈牙利算法。#include<iostream>#include<cstdio>#include<string.h>#include<cstring>using namespace std;int n, m, sum,原创 2015-05-27 22:09:10 · 564 阅读 · 0 评论 -
hdoj1874 (优先队列+Dijkstra)
[题目链接](http://acm.hdu.edu.cn/showproblem.php?pid=1874)分析:一看题目, 就是求最短路, 这道题用的是Dijkstra+优先队列。先说一下Dijkstra算法:伪代码:将所有节点状态初始化(标记为未计算)设起始点s, d[s] = 0; 其他节点d[i] = MAX;循环n次{ 在所有未标记的节点中, 选出d值最小的节点x; 标记节点x;原创 2015-05-19 22:41:22 · 526 阅读 · 0 评论 -
用匈牙利算法求二分图的最大匹配
什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很简单,但是网上搜不到什么说得清楚的文章。所以我决定要写一下。 最大流算法的核心问题就是找增广路转载 2015-05-27 19:17:22 · 531 阅读 · 0 评论 -
hiho 1182 : 欧拉路·三
1182 : 欧拉路·三这时题目中给的提示:小Ho:是这样的,每次转动一个区域不是相当于原来数字去掉最左边一位,并在最后加上1或者0么。于是我考虑对于"XYYY",它转动之后可以变成"YYY0"或者"YYY1"。我就将所有的数字0~2^N-1看作2^N个点,连接所有的("XYYY","YYY0"),("XYYY","YYY1")。比如当N=3时,我得到了这样一个图:原创 2015-06-30 13:51:17 · 685 阅读 · 0 评论