題目鏈結
problem description
rpg girls今天和大家一起去遊樂場玩,終於可以坐上夢寐以求的過山車了。可是,過山車的每一排只有兩個座位,而且還有條不成文的規矩,就是每個女生必須找個個男生做partner和她同坐。但是,每個女孩都有各自的想法,舉個例子把,rabbit只願意和xhd或pqk做partner,grass只願意和linle或ll做partner,princesssnow願意和水域浪子或偽酷兒做partner。考慮到經費問題,boss劉決定只讓找到partner的人去坐過山車,其他的人,嘿嘿,就站在下面看著吧。聰明的acmer,你可以幫忙算算最多有多少對組合可以坐上過山車嗎?
input
輸入資料的第一行是三個整數k , m , n,分別表示可能的組合數目,女生的人數,男生的人數。0output
對於每組資料,輸出乙個整數,表示可以坐上過山車的最多組合數。
sample input
6 3 3
1 11 2
1 32 1
2 33 1
0sample output3
思路:
這是一道非常非常經典的二分圖匹配的題目.
這個二分匹配的題也可以理解為你是一位月老,一點一點的,通過尋找增廣路來湊成一對又一對.
最大二分匹配的思路核心很簡單:
無腦列舉,尋找最優解.
不斷的通過列舉尋找增廣路~
比如這個題目的思路就靠兩個for迴圈構成題目的核心:
第乙個for:
int output=0;
//當然是輸出的結果啦~
for(
int i=
1;i<=n;i++
)//這裡n表示男生的人數.(男生一般臉皮都比較厚所以要男生主動去問女生啦~(其實都可以)).
然後是第二個for
int
find
(int x)}}
return0;
}
ac完整**
#include
#include
using
namespace std;
const
int maxn =
505;
int map[maxn]
[maxn]
;//圖的陣列.
int vis[maxn]
;//標記陣列.
int pri[maxn]
;int k,m,n;
intfind
(int x)}}
return0;
}int
main()
int output=0;
for(
int i=
1;i<=n;i++
)printf
("%d\n"
,output);}
}
過山車 (二分匹配)
rpg girls今天和大家一起去遊樂場玩,終於可以坐上夢寐以求的過山車了。可是,過山車的每一排只有兩個座位,而且還有條不成文的規矩,就是每個女生必須找個個男生做partner和她同坐。但是,每個女孩都有各自的想法,舉個例子把,rabbit只願意和xhd或pqk做partner,grass只願意和l...
HDU 2063 過山車 第一道最大二分匹配
題目大意 m個女生和n個男生一起做過山車,每一排必須一男一女,而每個女孩願意和一些男生坐一起,你要找出乙個最大匹配,使得最多的人坐上過山車。思路 第一道二分匹配。在同學blog上看到的題。學習了匈牙利演算法。課上有講過,不過那時我在幹啥?沒弄太明白,現在懂了哈哈。include includecon...
二分匹配 匈牙利演算法模板 過山車
description rpg girls今天和大家一起去遊樂場玩,終於可以坐上夢寐以求的過山車了。可是,過山車的每一排只有兩個座位,而且還有條不成文的規矩,就是每個女生必須找個個男生做partner和她同坐。但是,每個女孩都有各自的想法,舉個例子把,rabbit只願意和xhd或pqk做partne...