题意:有一个城镇,它的所有街道都是单行(即有向)的,并且每条街道都是和两个路口相连。同时已知街道不会形成回路。可以在任意一个路口放置一个伞兵,这个伞兵会顺着街道走,依次经过若干个路口。问最少需要投放几个伞兵,使得每个路口都被伞兵拜访过。并且要满足每个路口只能被一个伞兵拜访过。思路:裸DAG图的最小路...
分类:
其他好文 时间:
2014-11-16 00:26:50
阅读次数:
292
题目链接
题意:在一个有向图上,至少放多少个机器人可以遍历整个图(每个顶点可以重复遍历)?
思路:最小路径覆盖的变形,因为点可以重复遍历,所以要用floyd重新建图,然后用最小路径覆盖去做。
代码:
#include
#include
#include
#include
#include
using namespace std;
const int M...
分类:
其他好文 时间:
2014-11-08 18:15:57
阅读次数:
150
题目链接
题意:给定一个有向图,问最少放多少个伞兵,使得所有路口都能被走到,所有路口有且只被走到一次。
思路:二分图的最小路径覆盖。
在一个 N*N 的有向图中,路径覆盖就是在图中找一些路经,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中...
分类:
其他好文 时间:
2014-11-08 16:49:19
阅读次数:
150
题目大意:给出一张地图,一个军队要征战整个土地。一块土地只能经过一次,有X的地方不能走,军队只会走R*C个格子,只会向下走,问最少需要多少军队能够征战所有的土地。
思路:这个是前几天考试的题,今天居然发现时BZ的原题,还好当时A掉了。。。
看到每个土地只能经过一次就想到了网络流什么的,再一想想好像是最小路径覆盖啊,然后拆点,建图,Hungary,二分图最小路径覆盖=点数-最大匹配,没了...
分类:
其他好文 时间:
2014-11-05 10:59:25
阅读次数:
172
题意:
有一些位置有垃圾,让机器人从左上角开始走,只能往右或者往下,问最少走多少次可以清理完所有垃圾、
题解:
一看就是网络流经典题,或者说是二分图—最小路径覆盖;但是现在毕竟是在做一些贪心,这道题用的是一种贪心相关定理,Dilworth定理。
这道题可以理解为部分两点之间有偏序(可走的关系),呃,可以视为当xa
比如题中的数据1,我们经过处理得到2 4...
分类:
其他好文 时间:
2014-11-05 10:59:11
阅读次数:
268
POJ 1548 Robots
题目链接
题意:乍一看还以为是小白上那题dp,其实不是,就是求一共几个机器人可以覆盖所有路径
思路:最小路径覆盖问题,一个点如果在另一个点右下方,就建边,然后跑最小路径覆盖即可
代码:
#include
#include
#include
#include
using namespace std;
const int N = ...
分类:
其他好文 时间:
2014-10-30 19:20:32
阅读次数:
173
POJ 2594 Treasure Exploration
题目链接
题意:有向无环图,求最少多少条路径可以覆盖整个图,点可以重复走
思路:和普通的最小路径覆盖不同的是,点可以重复走,那么其实只要在多一步,利用floyd求出传递闭包,然后根据这个新的图去做最小路径覆盖即可
代码:
#include
#include
#include
#include
usin...
分类:
其他好文 时间:
2014-10-29 17:11:53
阅读次数:
201
POJ 3216 Repairing Company
题目链接
题意:有m项任务,每项任务的起始时间,持续时间,和它所在的block已知,且往返每对相邻block之间的时间也知道,问最少需要多少个工人才能完成任务,即x最少是多少
思路:先floyd求出每两个block之间的最小距离,然后就是最小路径覆盖问题,一个任务之后能赶到另一个任务就建边
代码:
#include...
分类:
其他好文 时间:
2014-10-29 17:04:09
阅读次数:
162
POJ 1422 Air Raid
题目链接
题意:给定一个有向图,在这个图上的某些点上放伞兵,可以使伞兵可以走到图上所有的点。且每个点只被一个伞兵走一次。问至少放多少伞兵
思路:二分图的最小路径覆盖,每个点拆成两个点,然后根据有向边连边,然后答案为n - 最大匹配数
代码:
#include
#include
#include
#include
using ...
分类:
其他好文 时间:
2014-10-29 12:57:48
阅读次数:
175
题目链接
题意:题目大意:一个有向图,让你按规则划分区域,要求划分的区域数最少。
规则如下:
1、有边u到v以及有边v到u,则u,v必须划分到同一个区域内。
2、一个区域内的两点至少要有一方能到达另一方。
3、一个点只能划分到一个区域内。
思路:根据规则1可知必然要对强连通分量进行缩点,缩点后变成了一个弱连通图。根据规则2、3可知即是要求图的最小路径覆盖。
...
分类:
其他好文 时间:
2014-10-21 21:42:31
阅读次数:
278