HDU 2063 过山车

HDU 2063 过山车 【匈牙利算法,二分图最大匹配】 二分图最大匹配入门题,话不多说,看代码。 阅读详情

题目大意:男女搭配,二分图模板题

思路:匈牙利算法.O(n*m)时间效率.枚举女生集合里面的每一个女生,每次都去找增广路径,

增广路径:

(1)两个点没有匹配过的,

(2)出发点和终点没有匹配过的,和已经匹配过的交替呈现  这里DFS搜就是了.

 

AC Program:

 

#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
typedef long long ll;
#define	clr(a)		memset((a),0,sizeof (a))
#define	rep(i,a,b)	for(int i=(a);i<(int)(b);i++)
#define	per(i,a,b)	for(int i=((a)-1);i>=(int)(b);i--)
#define	inf	0x7ffffff
#define	eps			1e-6
using namespace std;
int k,m,n; 
int b[510];//boy
int g[510];//girl
int flag[510];
int mm[510][510];//map
void init(){
    int vm,vn;
    memset(b,-1,sizeof(b));
    memset(g,-1,sizeof(g));//赋值为-1意思更贴题 
    memset(mm,0,sizeof(mm));
    for(int i=1;i<=k;i++){
        scanf("%d%d",&vm,&vn);        
        mm[vm][vn]=1;
    } 
    //system("pause");    
}
int findpath(int gu){
    for(int i=1;i<=n;i++){
       if(mm[gu][i]==1 && !flag[i]){
            flag[i]=1; 
            if(b[i]==-1){//两个点都是未在以前的增广路径(匹配结果)中的,直接找到了增广路径        
               b[i]=gu;   //更新匹配 
               g[gu]=i; 
               return 1;       
             }
            else if(findpath(b[i])){//如果这个男的已经匹配过了,那么沿着他的女伴找增广路径 
                b[i]=gu;
                g[gu]=i;
                return 1;
             }                
       }
       
    }
    return 0;    
}
int XYL(){
     int res=0;
     for(int i=1;i<=m;i++){//m是女生的个数  
        if(g[i]==-1){//如果还没有在匹配的就找增广路径           
           memset(flag,0,sizeof(flag));
           //每次进行找增广路径的时候不能走已经用过的点,有些点会回头的 
           //但是b[]g[]数组不改变是因为不断的寻找增广路径
           //点可以已经在增广路径中,但是不能在当前要寻找的增广路径中出现2遍
           res+=findpath(i);
     
        }     
     }
     return res;
} 
int main(){
  int test;
  //cin>>test;
  while(~scanf("%d",&k)){
      if(k==0)break;
      scanf("%d%d",&m,&n);
      init();
      printf("%d\n",XYL());           
       
  };  
  //system("pause");
  return 0;
}


 

 

hdu2063过山车(匈牙利算法)二分图匹配 过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 21792    Accepted Submission(s): 9443 Problem Description RPG girls今天和大家一起去游乐场玩 阅读详情

相关推荐

AUTOSAR/汽车行业

AUTOSAR架构及汽车产业链相关介绍

m0_54254513的博客 1万+

HDU P2063 过山车 题解

HDU P2063 过山车 题解 HDU P2063 题目 RPGRPGRPG girlsgirlsgirls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partnerpartnerpartner和她同坐。但是,每个女孩都有各自的想法,举个例子把,RabbitRabbitRabbit只愿意和XHDXHDXHD或PQKPQKPQK做partnerpartnerpartner,GrassGrassGrass只愿意

Y的博客 374

安卓-折叠屏平行视界适配(多厂商兼容与优先级实战)

本文详细解析了安卓折叠屏平行视界适配的现状与挑战,重点探讨了多厂商兼容性策略和优先级冲突的实战解决方案。通过对比Google的Embedding方案和国内厂商的EasyGo标准,提供了检测设备支持方案、处理优先级冲突及双方案共存的最佳实践,帮助开发者高效完成折叠屏适配。

weixin_29190169的博客 162

HDU 2063过山车 ——二分图最大匹配问题

在HDU 2063 过山车中,我们遇到的是二分图最大匹配问题。那么什么是二分图最大匹配呢?我找了很多资料,发现下面的博主写的很详细,在此贴上文章链接。 https://blog.youkuaiyun.com/qq_38956769/article/details/80238896 请务必先看懂文章再来做这道题。 下面是我看懂后写下的AC代码: #include<iostream> #in...

hjl_heart的博客 217

vue + video.js 加载多种视频流(HLS、FLV、RTMP、RTSP)

由于需要在一个项目内接入多种常用的视频流,所以接触到video.js,这里就做个记录。vue安装就不讲了,直接从项目开始了。RTSP格式已测试,无法成功播放,浏览器就识别不了STSP协议(提供两个解决方案:第一个是通过后端去转格式。第二个方案就是安装插件/中间件。目前想用浏览器直接播放RTSP格式流,没有其他更好的解决方法。

qq_17627195的博客 1万+

从零开始:用Xilinx FPGA实现RISC-V单周期CPU(附完整Verilog代码)

本文详细介绍了如何使用Xilinx FPGA从零开始实现RISC-V单周期CPU,包括开发环境搭建、核心架构设计、Verilog代码实现及功能验证。通过实战指南和完整代码示例,帮助开发者掌握RISC-V CPU设计的关键技术,适用于嵌入式系统和定制化计算场景。

weixin_30664051的博客 547

过山车 HDU - 2063

过山车 HDU - 2063   题意就是男生跟女生配对,求最大匹配数,匈牙利算法模板题 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int maxx=510; int mapp[maxx][maxx]; int K,M,N; int visi...

qq_43560101的博客 180

MATLAB 2022b 用户专属:保姆级IPOPT求解器安装配置全流程(含OPTI工具箱)

本文为MATLAB 2022b用户提供IPOPT求解器的详细安装与配置指南,涵盖OPTI工具箱的适配安装、环境变量设置及常见问题解决方案。通过实战案例演示非线性优化问题的求解过程,帮助用户高效部署这一强大的优化工具,提升工程计算效率。

weixin_29092031的博客 405

hdu 2063 过山车

hdu 2063 过山车         二分图最大匹配. #include #include #define MAX 505 bool map[MAX][MAX]; bool visited[MAX]; int match[MAX]; int k, n, m; bool dfs(int v) { int i; for (i = 1; i <= m; i++) { if (

happen_zhang 863

从ACTF2020看文件上传漏洞:你以为改后缀就完事了?这些坑我都帮你踩过了

本文通过ACTF2020的Upload题目深入剖析文件上传漏洞的复杂性和防御策略。文章揭示了常见误区,如仅修改文件后缀的局限性,并详细解析了绕过技巧和高级防御机制。从开发角度提供了构建安全上传功能的实用建议,帮助读者全面理解文件上传漏洞的本质与防护方法。

weixin_29278805的博客 246

iOS WKWebView H5微信支付跳转

iOS WKWebView H5微信支付跳转 需求:iOS客户端实现嵌入H5进行微信支付跳转到微信客户端,支付完成后再跳转回我们的APP,解决WKWebView无法跳转回APP的BUG. 阅读前提: 了解WKWebView基本初始化及使用 了解如何利用URL Schemes进行应用间跳转 公司或个人已经在微信后台注册了一级域名 GitHub地址(附代码) :iOS WKWebView H5微信支付跳转 简书地址 :iOS WKWebView H5微信支付跳转 博客地址 :iOS WKWe...

ForeverMyheart的博客 2046

【二分图-匈牙利算法】HDU 2063 过山车

详解 下面是模板题: HDU 2063 过山车 #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cmath> #include <cstring> #include <string> #inc...

L_X_ 226

matlab数学建模练习(2)练习电子科技大学数学实验

【代码】matlab数学建模练习(2)练习电子科技大学数学实验。

c_wrj_的博客 1435

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

过山车 Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 35605Accepted Submission(s): 15159 Problem Description RPG girls今...

~ 455

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HDU 2063 过山车( 最大匹配 )

HDU 2063 过山车( 最大匹配 ) 题意:中文 思路:最大匹配 #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> #include<set> #inclu...

weixin_30883311的博客 90

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HDU 2063 过山车 (二分匹配之匈牙利算法)

二分匹配之匈牙利算法

大咸鱼。。。 790

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

hdu 2063 过山车(二分最大匹配)

//hdu 2063 过山车(二分最大匹配) /* 6 3 3 1 1 1 2 1 3 2 1 2 3 3 1 用这数据分析一下算法 女1 愿意跟 男1 2 3 女2 愿意跟 男1 3 女3 愿意跟 男1 第一步,先女1和男1匹配成功 第二步,女2想跟男1匹配,然而却被女1匹配了。 那怎么办,寻找一下女1是否可以和其他匹配,可以寻找男2匹配 ,所以现在女1和男2匹配,和女2和男1匹配。(如果

u014068781的专栏 451

HDU2063过山车(匈牙利算法)

本文介绍了使用匈牙利算法解决二分图最大匹配问题的思路。题目要求将男女同学配对坐过山车,女生有特定的男生偏好。算法通过遍历女生,尝试为每个女生寻找可匹配的男生:若男生未被匹配或原配女生能找到其他匹配,则更新匹配关系。代码实现采用邻接表存储偏好关系,使用match数组记录匹配结果,st数组标记访问状态。最终统计最大匹配对数输出。该算法能高效解决类似二分图匹配问题。

2301_81026709的博客 192

HDU2063-过山车

过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10683    Accepted Submission(s): 4699 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐

程序猿之洞 8635

hdu2063过山车

引出匈牙利算法: int find(int x, int n){ int i; for(i = 1; i <= n; i++){ if(!vis[i] && map[x][i]){ //依次判断女生是否对男生有好感 vis[i] = 1; if(pri[i] == -1 || find(pri[i], n)){ pri[i] = x; ...

solego’s blog 248

HDU 2063 过山车【最大匹配】

过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15847 Accepted Submission(s): 6938 Problem Description RPG girls今天和大家一起去游乐场玩,终于可

希望的专栏 413
上一篇: POJ 3259 Wormholes(再续前章)
下一篇: 2013ACM/ICPC湘潭邀请赛
muximuxi525
博客等级 码龄15年 134粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值