題意:有n個十字路口,這些十字路口通過m條路連線,邊是單向的,現在要派一些傘兵去空襲這些十字路口,每個傘兵可以沿著一條路空襲沿路的十字路口,問最少要派出多少傘兵。
解法:對於有向無環圖求最小的路徑覆蓋數相當於將原圖中的點拆開後,求乙個最大匹配數,然後用頂點數減去最大匹配數就是最小路徑覆蓋了。
**如下:
#include #include#include
#include
#include
using
namespace
std;
intn, m;
char g[125][125], vis[125
];int match[125
];bool path(int
u) }
return
false;}
intquery()
return n -ret;
}int
main()
printf(
"%d\n
", query());
}return
0;
}
poj 1422Air Raid 最小路徑覆蓋
題意 有個城鎮,所有路都是單行道,並且沒有環,所有路都連線在十字路口上 現在用最少的傘兵走完這些式子路口,每個只能走一遍 很明顯的最小路徑覆蓋 最小路徑覆蓋 點數 最大匹配 需要拆點 所有式子路口 在x中乙個 在y中乙個 路把兩個集合中十字路口連線起來 求最大匹配 還是匈牙利 include inc...
POJ 1422 Air Raid 最小路徑覆蓋
題意 有n個十字路口,這些十字路口通過m條路連線,邊是單向的,現在要派一些傘兵去空襲這些十字路口,每個傘兵可以沿著一條路空襲沿路的十字路口,問最少要派出多少傘兵。解法 對於有向無環圖求最小的路徑覆蓋數相當於將原圖中的點拆開後,求乙個最大匹配數,然後用頂點數減去最大匹配數就是最小路徑覆蓋了。如下 in...
poj1422Air Raid(最小路徑覆蓋)
題意 乙個鎮上有很多街道,很多十字路口,無迴圈,把傘兵放在各個十字路口上,使之能把所有的街道都走過,求最小的傘兵數。最小路徑覆蓋 節點數 最大匹配。模板題 view code 1 include 2 include3 include4 using namespace std 5int map 200...