過山車
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
0
sample output
3
#include#include#include#include#define rep(i,a,b) for(int i=a;i<=b;i++)
int k,m,n;
bool e[600][600];//用來儲存誰和誰是想要在一起的
bool vis[600];//標記女生i是否被選(這裡是指在編號為x,因為同乙個男生選乙個女生兩次沒有含義)
int link[600];//表示編號為i的女生被誰帶走,這是乙個全域性變數,不是指當前男生的選擇情況
int ans;
bool dfs(int x)}}
return false;
}void dig()
}int main()
dig();
printf("%d\n",ans);
}}
跟這道題一樣都是模板題的還有hdu1083 HDU 2063 過山車 匈牙利演算法模板
匈牙利演算法模板。大概過程就是對乙個點進行匹配時,嘗試匹配所有與它相連的點。如果這個點沒有被匹配,或者這個點被匹配了,但是匹配它的點可以重新找到乙個匹配點,從而騰出這個點,那麼就可以與這個點匹配。used陣列標記遍歷到的v。如果不標記,增廣過程中乙個點會重複匹配v。最大匹配就是對一邊所有的點嘗試匹配...
HDU 2063 過山車(匈牙利)
題目大意 男生女生一起做過山車,要求必須乙個男生和乙個女生一起做過山車,現在給出了女生分別想和那幾個男生一起做過山車,問能做上過山車的最大組合數。思路分析 求建立二分圖中的最大匹配數,用匈牙利演算法 乙個模板題 實現 include includeint top,ans,by 550 visit 5...
Hdu2063 匈牙利 過山車
problem description rpg girls今天和大家一起去遊樂場玩,終於可以坐上夢寐以求的過山車了。可是,過山車的每一排只有兩個座位,而且還有條不成文的規矩,就是每個女生必須找個個男生做partner和她同坐。但是,每個女孩都有各自的想法,舉個例子把,rabbit只願意和xhd或pq...