日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

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

過山車

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导航 | 国产精品免费一区 | 一区二区免费在线 | 国产精品国产三级国产专播精品人 | 久热中文| 欧美aaaaaa午夜精品 | 久久网亚洲 | 女人久久| 欧美国产日韩视频 | 精品国产久 | 五月婷婷丁香 | 成人影院网站ww555久久精品 | 婷婷综合 | 国产在线v | 色交视频 | 久久久久久久久久久国产 | 国产精品女 | 99在线国产 | 国产成人毛片 | 黄色网页网站 | 91中文视频 | 日韩黄色网址 | 国产成人免费视频网站视频社区 | 91久久久久久久久 | 国产这里只有精品 | 亚洲一区在线免费 | 亚洲精品视频在线 |