/*
題意:有個城鎮,所有路都是單行道,並且沒有環,所有路都連線在十字路口上
現在用最少的傘兵走完這些式子路口,每個只能走一遍
很明顯的最小路徑覆蓋
最小路徑覆蓋=點數-最大匹配
需要拆點 所有式子路口 在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...