当前位置: 代码迷 >> 综合 >> POJ - 2594 Treasure Exploration(最小可相交路径覆盖)
  详细解决方案

POJ - 2594 Treasure Exploration(最小可相交路径覆盖)

热度:81   发布时间:2023-12-09 20:08:21.0

链接:POJ - 2594 Treasure Exploration

题意:

给出一个含有 n ? ( 1 ≤ n ≤ 500 ) n\,(1\le n\le 500) n(1n500)个结点、 m ( 0 ≤ m ≤ 5000 ) m(0\le m\le 5000) m(0m5000)条边的有向无环图(DAG),机器人可以从任意点出发,问至少需要多少机器人,才能遍历图上所有点?(允许同一点同时存在多个机器人)



分析:

即求DAG上 最小可相交路径覆盖

利用floyd算法,求出该图的传递闭包(若 i → j i\rarr j ij可达,则连边 < i , j > <i,j> <i,j>),然后在传递闭包上求 最小不相交路径覆盖 即可。

  • 最小不相交路径覆盖 = = =总点数 ? - ?对应二分图最大匹配


代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
typedef
  相关解决方案