国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【codevs1904】[網絡流24題]最小路徑覆蓋問題

2019-11-08 03:00:31
字體:
來源:轉載
供稿:網友

拆點,轉化成二分圖,直接代konig定理. 最小路徑覆蓋數 = 頂點數 - 最大匹配數 因為匈牙利好寫寫的匈牙利.

#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>using namespace std;const int N=100010;int matching[N],te,check[N],ans,head[N],n,m;struct edge{ int v,next;}e[200010];void add(int u,int v){ e[++te].v=v; e[te].next=head[u]; head[u]=te;}int dfs(int u){ for (int i=head[u];i;i=e[i].next) { int v=e[i].v; if (!check[v]) { check[v]=1; if (matching[v]==-1||dfs(matching[v])) { matching[u]=v; matching[v]=u; return true; } } } return false;}int hungarian(){ memset(matching,-1,sizeof(matching)); for (int i=1;i<=n;i++) { if (matching[i]==-1) { memset(check,0,sizeof(check)); if(dfs(i))++ans; } }}int main(){ ans=0; memset(head,0,sizeof(head)); cin>>n>>m; for (int i=1;i<=m;++i) { int u,v; scanf("%d%d",&u,&v); add(u,v+n); } hungarian(); cout<<n-ans;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金湖县| 原阳县| 荥阳市| 清涧县| 青州市| 洛浦县| 卢氏县| 儋州市| 文水县| 陇南市| 鹤壁市| 安康市| 海口市| 旺苍县| 中阳县| 丹寨县| 澜沧| 长岛县| 许昌市| 辉南县| 离岛区| 凤冈县| 广饶县| 固阳县| 浦北县| 奉贤区| 衡阳县| 靖远县| 兖州市| 始兴县| 景洪市| 新平| 得荣县| 红河县| 安龙县| 洱源县| 常州市| 即墨市| 祁东县| 柳江县| 贵州省|