HDU 2063 过山车(匈牙利算法)

来源:互联网 发布:烧it 编辑:程序博客网 时间:2024/05/21 10:07

题意:男生女生一起坐过山车,每一排有两个座位,但是有个条件,就是每个女生必须找个男生做同伴一起(但是女生只愿意和某几个男生中的一个做同伴),求最多可以有多少对男女生组合坐上过山车。

思路:匈牙利算法

代码:

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int m,n;//女,男int map[510][510];int visited[510];//男生已访问?int match[510];//男生已匹配?int dfs(int i){// 查找i女生是否找到男同伴int j;for(j=1;j<=n;j++){//男生循环一遍if(map[i][j]&&!visited[j]){//女对男有好感,且男未访问visited[j]=1;if(!match[j]||dfs(match[j])){//男未匹配,或者已匹配但是能够找到交错路match[j]=i;return 1;}}}return 0;}int main(){int k,ans;//可能组合,最多组合int i;int x,y;while(~scanf("%d",&k)&&k){ans=0;memset(map,0,sizeof(map));memset(match,0,sizeof(match));scanf("%d%d",&m,&n);for(i=0;i<k;i++){scanf("%d%d",&x,&y);map[x][y]=1;}for(i=1;i<=m;i++){//女生循环一遍memset(visited,0,sizeof(visited));if(dfs(i)) ans++;}printf("%d\n",ans);}return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 为什么淘宝点开就跳过打不开怎么办 刹车油进眼睛里怎么办 眼睛被uv灯刺伤怎么办 眼睛被uv灯伤了怎么办 洗手台靠不到墙怎么办 加盟天猫优品不想干了怎么办 口袋侦探点开始就闪退怎么办 淘宝号被监控了怎么办 excel表格中把字体变细怎么办 wps方框中打字打不上怎么办 蘑菇街里面买东西受骗了怎么办? 淘宝买家号账户体检中心违规怎么办 支付宝充错手机账号怎么办 美团恶意差评怎么办 买家好评后追加差评怎么办 宝贝吃了一个金币怎么办 店铺微淘等级l1怎么办 淘宝占内存2个g怎么办 淘宝太占空间了怎么办 支付宝占内存大怎么办 苹果手机储存空间不足怎么办 小米平板电脑储存空间不足怎么办 ipad2很卡反应慢怎么办 ipadmini很卡反应慢怎么办 手机酷狗音乐文件不支持怎么办 2018款ipad闪退怎么办 ipad开不了机了怎么办 淘宝盖楼上限了怎么办 交了学费做微淘客却加不到人怎么办 微淘客交首付不想做了怎么办 蚂蚁微客二维码推广怎么办 游拍主播申请手机号被注册怎么办 淘宝客不给力怎么办 淘宝买家确认收货超时怎么办 淘宝没收到货退款卖家不处理怎么办 微博红包都是字怎么办 500个访客没转化怎么办 店铺动态评分是0怎么办 京东店铺评分低怎么办 被淘宝主播屏蔽怎么办 在淘宝客推广后退款怎么办