亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

二分圖匹配實例代碼及整理

2020-01-26 13:59:52
字體:
來源:轉載
供稿:網友

二分圖匹配實例代碼及整理

1、匈牙利算法

HDU 1150

#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int m,n,k; int vis[105]; int mpt[105][105]; int use[105]; int hungary(int x) {   for(int i=1;i<m;i++)   {     if(vis[i]==0&&mpt[x][i]==1)     {       vis[i]=1;       if(use[i]==-1||hungary(use[i]))       {         use[i]=x;         return 1;       }     }   }   return 0; } int main() {   while(scanf("%d",&n)!=EOF,n)   {     scanf("%d%d",&m,&k);     int a,b,c;     memset(mpt,0,sizeof(mpt));     for(int i=1;i<=k;i++)     {       scanf("%d%d%d",&c,&a,&b);       mpt[a][b]=1;     }     int ans=0;     memset(use,-1,sizeof(use));     for(int i=1;i<n;i++)     {       if(hungary(i))       {         ans++;       }       memset(vis,0,sizeof(vis));     }     printf("%d/n",ans);   }   return 0; } 


2、KM算法

HDU 2255

看了很多資料都還不是很懂、、先貼別人的模板

#include<iostream> #include<cstdio> #include<cstring> #include<climits> #include<algorithm> using namespace std; #define N 310 int map[N][N]; bool visitx[N], visity[N]; int lx[N], ly[N]; int match[N]; int n;  bool Hungary(int u) //匈牙利算法 {   visitx[u] = true;   for(int i = 0; i < n; ++i)   {     if(!visity[i] && lx[u] + ly[i] == map[u][i])     {       visity[i] = true;       if(match[i] == -1 || Hungary(match[i]))       {         match[i] = u;         return true;       }     }   }   return false; }  void KM_perfect_match() {   int temp;   memset(lx, 0, sizeof(lx)); //初始化頂標   memset(ly, 0, sizeof(ly)); //ly[i]為0   for(int i = 0; i < n; ++i) //lx[i]為權值最大的邊     for(int j = 0; j < n; ++j)       lx[i] = max(lx[i], map[i][j]);   for(int i = 0; i < n; ++i) //對n個點匹配   {     while(1)     {       memset(visitx, false, sizeof(visitx));       memset(visity, false, sizeof(visity));       if(Hungary(i)) //匹配成功         break;       else //匹配失敗,找最小值       {         temp = INT_MAX;         for(int j = 0; j < n; ++j) //x在交錯樹中           if(visitx[j])             for(int k = 0; k < n; ++k) //y在交錯樹外               if(!visity[k] && temp > lx[j] + ly[k] - map[j][k])                 temp = lx[j] + ly[k] - map[j][k];         for(int j = 0; j < n; ++j) //更新頂標         {           if(visitx[j])             lx[j] -= temp;           if(visity[j])             ly[j] += temp;         }       }     }   } }  int main() {   int ans;   while(scanf("%d", &n) != EOF)   {     ans = 0;     memset(match, -1, sizeof(match));     for(int i = 0; i < n; ++i)       for(int j = 0; j < n; ++j)         scanf("%d", &map[i][j]);     KM_perfect_match();     for(int i = 0; i < n; ++i) //權值相加       ans += map[match[i]][i];     printf("%d/n", ans);   }   return 0; } 

3、多重匹配

HDU  3605 Escape

#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int n,m; int num[15]; int mpt[100005][15]; int vis[15]; int use[15]; int dp[15][100005]; int hungary(int x) {   for(int i=1;i<=m;i++)   {     if(vis[i]==0&&mpt[x][i]==1)     {       vis[i]=1;       if(use[i]<num[i])//滿足條件       {         dp[i][use[i]++]=x;         return 1;       }       //不滿足則尋找增廣路       for(int j=0;j<use[i];j++)//看能否回溯一個出去       {         if(hungary(dp[i][j]))         {           dp[i][j]=x;           return 1;         }       }     }   }   return 0; } int main() {   while(scanf("%d%d",&n,&m)!=EOF)   {     for(int i=1;i<=n;i++)     {       for(int j=1;j<=m;j++)       {         scanf("%d",&mpt[i][j]);       }     }     for(int i=1;i<=m;i++)       scanf("%d",&num[i]);     int ans=0;     memset(use,0,sizeof(use));     for(int i=1;i<=n;i++)     {       memset(vis,0,sizeof(vis));       if(!hungary(i))       {         ans=1;         break;       }     }     if(ans==0)     {       printf("YES/n");     }     else printf("NO/n");   }    return 0; } 

以上就是二分圖匹配的實現代碼,如有疑問請留言,或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产99久久精品一区二区永久免费| 久久亚洲精品成人| 91成人在线观看国产| 欧美亚洲伦理www| 国产精品美女av| 中文字幕国产精品久久| 国产精品啪视频| 国产精品爽爽爽爽爽爽在线观看| 国产精品夜色7777狼人| 亚洲精品永久免费精品| 亚洲www在线观看| 亚洲精品成人久久久| 91精品国产综合久久男男| 久久99久国产精品黄毛片入口| 欧美日韩在线一区| 欧美另类精品xxxx孕妇| 日本精品中文字幕| 亚洲人成在线电影| 亚洲视频自拍偷拍| 日本午夜在线亚洲.国产| 久久99视频免费| 欧美限制级电影在线观看| 国产精品夜色7777狼人| 久久人人爽国产| 伊人久久久久久久久久| 成人免费直播live| 亚洲经典中文字幕| 亚洲男人天堂2019| 欧美日韩国产综合视频在线观看中文| 久久久国产精品亚洲一区| 北条麻妃99精品青青久久| 国产999在线| 欧美成人h版在线观看| 国产日韩在线免费| 久久精品国产一区二区三区| 欧美野外猛男的大粗鳮| 欧美激情视频一区| 亚洲美女在线看| 久久久久久久久久国产精品| 91精品国产91久久久久| 亚洲自拍av在线| 欧美理论在线观看| 国产精品情侣自拍| 亚洲国产精品久久久久秋霞不卡| 精品国产成人在线| 亚洲第一av网站| 亚洲精品不卡在线| 亚洲国内精品视频| 日韩中文字幕视频在线观看| 亚洲成人免费网站| 日本视频久久久| 欧美激情乱人伦| 国产一区二区三区日韩欧美| 成人羞羞国产免费| 欧美日韩不卡合集视频| 最近2019年手机中文字幕| 欧美精品激情在线观看| 91在线观看免费| 国自在线精品视频| 欧美一区二区三区艳史| 国产成人精品一区二区| 欧美日韩国产在线播放| 国产精品午夜国产小视频| 亚洲精品98久久久久久中文字幕| 成人免费在线网址| 成年人精品视频| 欧美电影免费观看高清| 亚洲精品久久久久| 日韩中文字幕第一页| 精品国产拍在线观看| 国产主播精品在线| 亚洲最大福利视频| 国产欧美婷婷中文| 成人福利在线观看| 亚洲美女av在线播放| 中文字幕精品在线视频| 国产精品草莓在线免费观看| 国产做受69高潮| 国产精品午夜国产小视频| 亚洲视频777| 久久精视频免费在线久久完整在线看| 欧美极品少妇全裸体| 久久精品久久久久久| 2019中文字幕在线观看| 97人人爽人人喊人人模波多| 亚洲精品小视频在线观看| 欧美日韩中文在线| 上原亚衣av一区二区三区| 97涩涩爰在线观看亚洲| 午夜精品久久久久久久久久久久久| 日韩久久精品成人| 欧美巨乳在线观看| 久久视频在线视频| 亚洲一级片在线看| 538国产精品一区二区免费视频| 久久久精品国产一区二区| 亚洲精品久久久久久久久久久久久| 欧美午夜女人视频在线| 日韩大陆欧美高清视频区| 国产精品一区二区三区成人| 亚洲天堂精品在线| 欧美巨乳美女视频| 久久精品视频99| 精品久久久久久久久久| 国产有码在线一区二区视频| 欧美理论片在线观看| 日韩av免费网站| 精品国产鲁一鲁一区二区张丽| 国产mv免费观看入口亚洲| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产精品99久久| 亚洲欧洲自拍偷拍| 亚洲欧美制服中文字幕| 日本中文字幕久久看| 日韩中文字幕欧美| 国产精品久久国产精品99gif| 久青草国产97香蕉在线视频| 国产精品爽爽ⅴa在线观看| 91系列在线播放| 中文字幕av一区中文字幕天堂| 亚洲一二在线观看| 国内免费精品永久在线视频| 菠萝蜜影院一区二区免费| 欧美最顶级的aⅴ艳星| 正在播放亚洲1区| 人九九综合九九宗合| 久久久久久久电影一区| 午夜精品久久久久久久久久久久| 成人黄色av网站| 欧美成人精品在线视频| 性欧美视频videos6一9| 欧美极品xxxx| 岛国精品视频在线播放| 欧美午夜宅男影院在线观看| 91香蕉国产在线观看| 国产精品欧美激情| 第一福利永久视频精品| 精品亚洲永久免费精品| 2020国产精品视频| 午夜精品99久久免费| 亚洲区在线播放| 亚洲va欧美va在线观看| 日韩性xxxx爱| 国产福利精品视频| 国产成人拍精品视频午夜网站| 成人免费观看网址| 91精品国产91久久久| 欧美午夜视频在线观看| 亚洲色图色老头| www国产精品com| 精品久久久久久| 国产精品中文字幕久久久| 91精品国产综合久久香蕉922| 久久精品国产亚洲| 亚洲欧洲高清在线| 欧美最猛黑人xxxx黑人猛叫黄| 欧美另类老肥妇| 久久视频这里只有精品| 国产日韩欧美夫妻视频在线观看| 黑丝美女久久久| 国产精品最新在线观看| 欧美黑人xxxx| 国产精品福利在线观看网址| 日韩大片免费观看视频播放|