国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枝江市| 剑阁县| 金塔县| 上思县| 兴仁县| 南郑县| 大余县| 平凉市| 沁源县| 长海县| 甘孜县| 麻城市| 克拉玛依市| 诸城市| 肥西县| 临江市| 琼中| 荆州市| 和田市| 萍乡市| 古浪县| 桐城市| 西青区| 建瓯市| 永丰县| 浦江县| 宕昌县| 华池县| 略阳县| 杭州市| 潼关县| 扎兰屯市| 贵港市| 黄石市| 上栗县| 韶山市| 准格尔旗| 瑞金市| 信丰县| 宜昌市| 建宁县|