摘要: hdoj1584分析:f[i][j] 表示 把一串牌 牌 i 到 j 摞为一摞时 所花费最少的步数。 d[i][j] 表示把牌 i 挪到牌 j 上时需要走的步数(最初给的状态)。 以一串牌 3~8 为例, 我们需要把牌 3 放到牌 4 上 , 而在最优的移动方案下, 牌 4 的位置不确定, 所以我们... 阅读全文
posted @ 2015-06-09 21:55 kitten.one 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://poj.org/problem?id=2594)题目大意:一个有向图中, 有若干条连接的路线, 问最少放多少个机器人,可以将整个图上的点都走过。 最小路径覆盖问题。 分析:这时最小路径覆盖问题, 最小路径覆盖 = |V| - 最大匹配数。 (有关最小路径覆盖,最大匹配问题,... 阅读全文
posted @ 2015-06-02 21:36 kitten.one 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 在讲述这两个算法之前,首先有几个概念需要明白:二分图:二分图又称二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A, j in B), 则称图G是二分... 阅读全文
posted @ 2015-06-02 20:49 kitten.one 阅读(5543) 评论(0) 推荐(3) 编辑
摘要: poj3660题意:有n头牛, 给你m对关系(a, b)表示牛a能打败牛b, 求在给出的这些关系下, 能确定多少牛的排名。分析:在这呢先说一下关系闭包: 关系闭包有三种: 自反闭包(r), 对称闭包(s), 传递闭包(t)。先画出R的关系图,再画出r(R), s(R), t(R)的关系图。 ... 阅读全文
posted @ 2015-06-01 22:14 kitten.one 阅读(2049) 评论(0) 推荐(0) 编辑
摘要: Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。我们平时所见的Floyd算法的一般形式如下:1 void Floyd(){2 int i,j,k;3 for(k=1;k,则c[i, j, 0] =边 的长度;若i= j ,... 阅读全文
posted @ 2015-05-29 21:40 kitten.one 阅读(2150) 评论(0) 推荐(0) 编辑
摘要: nyoj42分析: 若图G中存在这样一条路径,使得它恰通过G中每条边一次,则称该路径为欧拉路径。若该路径是一个圈,则称为欧拉(Euler)回路。 具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉路径但不具有欧拉回路的图称为半欧拉图。 先说一下欧拉路径、欧拉回路的充要条件:1.无向连通图G是欧拉图... 阅读全文
posted @ 2015-05-29 19:58 kitten.one 阅读(342) 评论(0) 推荐(0) 编辑
摘要: poj2337这道题昨天晚上开始做,今天才A。但是问题想透了, 发现其实没那么难题目大意:给你一些单词,如果一个单词的末尾字符与另一个单词首字符相同,则两个的单词可以连接。问是否可以把所有单词连接起来,并且每个单词只能用一次。分析:可以把每个单词看成是一条边,单词的首尾字符看做是两个相连的点。我们可... 阅读全文
posted @ 2015-05-29 19:35 kitten.one 阅读(764) 评论(0) 推荐(0) 编辑
摘要: poj1274题意: 有n个奶牛, m个畜舍, 每个畜舍最多装1头牛,每只奶牛只有在自己喜欢的畜舍里才能产奶。 求最大产奶量。 分析: 其实题意很明显, 二分图的最大匹配, 匈牙利算法。#include#include#include#includeusing namespace std;int... 阅读全文
posted @ 2015-05-27 22:13 kitten.one 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 转载大神的!!什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效... 阅读全文
posted @ 2015-05-27 19:23 kitten.one 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 题目链接分析:很明显,一看就是拓扑排序。 看似简单, 暗藏武器啊。 第一次做的时候一边拓扑排序一边标记他们的深度, 例如题中给的例子 {1 2;2 3;4 3 }。1的深度为1。 2、4的深度为2; 3的深度为3。 然后按深度的逆序输出深度相同的先输出小的。 其实不然啊!! 举个例子6个点, 边为{... 阅读全文
posted @ 2015-05-21 20:30 kitten.one 阅读(308) 评论(0) 推荐(0) 编辑