多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > hdoj 2063 過山車 【二分匹配之匈牙利算法】

hdoj 2063 過山車 【二分匹配之匈牙利算法】

來源:程序員人生   發布時間:2014-11-03 09:09:14 閱讀次數:3210次

過山車

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11520    Accepted Submission(s): 5072


Problem Description
RPG girls今天和大家1起去游樂場玩,終究可以坐上夢寐以求的過山車了??墒?,過山車的每排只有兩個坐位,而且還有條不成文的規矩,就是每一個女生必須找個個男生做partner和她同坐。但是,每一個女孩都有各自的想法,舉個例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSnow愿意和水域浪子或偽酷兒做partner。斟酌到經費問題,boss劉決定只讓找到partner的人去坐過山車,其他的人,嘿嘿,就站在下面看著吧。聰明的Acmer,你可以幫忙算算最多有多少對組合可以坐上過山車嗎?
 

Input
輸入數據的第1行是3個整數K , M , N,分別表示可能的組合數目,女生的人數,男生的人數。0<K<=1000
1<=N 和M<=500.接下來的K行,每行有兩個數,分別表示女生Ai愿意和男生Bj做partner。最后1個0結束輸入。
 

Output
對每組數據,輸出1個整數,表示可以坐上過山車的最多組合數。
 

Sample Input
6 3 3 1 1 1 2 1 3 2 1 2 3 3 1 0
 

Sample Output
3

第1道2分匹配題。。。

純屬模板。

參考:http://blog.csdn.net/wellerzhao/article/details/7756956

代碼1:

#include <stdio.h> #include <string.h> #define M 555 int map[M][M]; int mx[M], my[M]; int vis[M]; int n, m; int find(int s){ int i; for(i = 1; i<= m; i ++){ if(!vis[i]&&map[s][i]){ vis[i] = 1; if(my[i] == 0||find(my[i])){ my[i] = s; mx[s] = i; return 1; } } } return 0; } void f(){ for(int i = 1; i <= n; i ++) printf("%d..%d,,%d..%d ", i, mx[i], i, my[i]); } int main(){ int k; while(scanf("%d", &k), k){ int i; memset(map, 0, sizeof(map)); memset(mx, 0, sizeof(mx)); memset(my, 0, sizeof(my)); int a, b; scanf("%d%d", &n, &m); for(i = 0; i < k; i ++){ scanf("%d%d", &a, &b); map[a][b] = 1; } int ans = 0; for(i = 1; i<= n; i ++){ if(!mx[i]){ memset(vis, 0, sizeof(vis)); if(find(i)) ++ans; } } printf("%d ", ans); // f(); } return 0; }

下面的代碼是另外的1種情勢,,不過只是多了個數組。。。思想還是1樣的

代碼;

#include <stdio.h> #include <string.h> #define M 555 int map[M][M]; int mx[M], my[M]; int vis[M]; int n, m; int find(int s){ int i; for(i = 1; i<= m; i ++){ if(!vis[i]&&map[s][i]){ vis[i] = 1; if(my[i] == 0||find(my[i])){ my[i] = s; mx[s] = i; return 1; } } } return 0; } void f(){ for(int i = 1; i <= n; i ++) printf("%d..%d,,%d..%d ", i, mx[i], i, my[i]); } int main(){ int k; while(scanf("%d", &k), k){ int i; memset(map, 0, sizeof(map)); memset(mx, 0, sizeof(mx)); memset(my, 0, sizeof(my)); int a, b; scanf("%d%d", &n, &m); for(i = 0; i < k; i ++){ scanf("%d%d", &a, &b); map[a][b] = 1; } int ans = 0; for(i = 1; i<= n; i ++){ if(!mx[i]){ memset(vis, 0, sizeof(vis)); if(find(i)) ++ans; } } printf("%d ", ans); // f(); } return 0; }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩特黄特色大片免费视频 | 99热久久这里只有精品首页 | 国产成人久久久精品毛片 | 一区二区久久 | 国产免费叼嘿视频 | 999av视频 | 极品福利在线 | 亚洲伊人成人 | 久久精品一区二区免费看 | 国产拍拍拍免费专区在线观看 | 日本天堂视频 | 国产精品免费_区二区三区观看 | 国产上床视频 | 色优影院| 羞羞动漫视频在线观看 | www.亚洲一区二区三区 | 成人精品区 | 欧美成人h版影片在线观看 欧美成人h版影院在线播放 | 亚洲日本中文字幕永久 | 久久久国产精品免费 | 在线观看视频中文字幕 | 日本私人影院 | wwwwwww色| 99热成人精品国产免男男 | 国产精品视频网 | 国内免费视频成人精品 | 亚洲天堂视频在线 | 精品日韩一区二区三区视频 | 欧美另类一区 | 两性午夜又粗又大又爽视频 | 久久精品免费一区二区三区 | 亚洲一区二区三区91 | 秋霞免费手机理论视频在线观看 | 精品久久九九 | 1314成人网 | 免费男女视频 | 国产色综合久久无码有码 | 中文字幕日韩欧美一区二区三区 | 亚洲天天看 | 欧美高清性刺激毛片 | 一级毛片在线完整免费观看 |