poj 1422Air Raid 最小路徑覆蓋

2021-06-08 06:32:21 字數 559 閱讀 2210

/*

題意:有個城鎮,所有路都是單行道,並且沒有環,所有路都連線在十字路口上

現在用最少的傘兵走完這些式子路口,每個只能走一遍

很明顯的最小路徑覆蓋

最小路徑覆蓋=點數-最大匹配

需要拆點 所有式子路口 在x中乙個 在y中乙個

路把兩個集合中十字路口連線起來

求最大匹配 還是匈牙利

*/#include#includeusing namespace std;

vectorv[150];

int t,n,m;

int match[150],vis[150];//都只是對y集中的點

int dfs(int i)

} }return 0;

}int main()

a=0;

memset(match,-1,sizeof(match));

for(i=1;i<=n;i++)

printf("%d\n",n-a);//最小路徑覆蓋=點數-最大匹配

} return 0;

}

POJ 1422 Air Raid 最小路徑覆蓋

題意 有n個十字路口,這些十字路口通過m條路連線,邊是單向的,現在要派一些傘兵去空襲這些十字路口,每個傘兵可以沿著一條路空襲沿路的十字路口,問最少要派出多少傘兵。解法 對於有向無環圖求最小的路徑覆蓋數相當於將原圖中的點拆開後,求乙個最大匹配數,然後用頂點數減去最大匹配數就是最小路徑覆蓋了。如下 in...

poj1422Air Raid(最小路徑覆蓋)

題意 乙個鎮上有很多街道,很多十字路口,無迴圈,把傘兵放在各個十字路口上,使之能把所有的街道都走過,求最小的傘兵數。最小路徑覆蓋 節點數 最大匹配。模板題 view code 1 include 2 include3 include4 using namespace std 5int map 200...

POJ 1422 Air Raid 最小路徑覆蓋

題意 有n個十字路口,這些十字路口通過m條路連線,邊是單向的,現在要派一些傘兵去空襲這些十字路口,每個傘兵可以沿著一條路空襲沿路的十字路口,問最少要派出多少傘兵。解法 對於有向無環圖求最小的路徑覆蓋數相當於將原圖中的點拆開後,求乙個最大匹配數,然後用頂點數減去最大匹配數就是最小路徑覆蓋了。如下 in...