2019-02-26-过山车-HDU2063-二分图匹配-匈牙利算法

MAX30102心率血氧传感器 估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。 阅读详情

HDU-2063-过山车

Problem Description

RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSnow愿意和水域浪子或伪酷儿做partner。考虑到经费问题,boss刘决定只让找到partner的人去坐过山车,其他的人,嘿嘿,就站在下面看着吧。聪明的Acmer,你可以帮忙算算最多有多少对组合可以坐上过山车吗?


Input

输入数据的第一行是三个整数K , M , N,分别表示可能的组合数目,女生的人数,男生的人数。0<K<=1000 1<=N 和M<=500.接下来的K行,每行有两个数,分别表示女生Ai愿意和男生Bj做partner。最后一个0结束输入。

Output

对于每组数据,输出一个整数,表示可以坐上过山车的最多组合数。


Sample Input

6 3 3
1 1
1 2
1 3
2 1
2 3
3 1
0
Sample Output

3

题目简述

题意:对于m女生,n男生,女生和男生之间有一定的期望匹配关系,使找出匹配数最大的匹配方案

使用匈牙利算法即可

基本概念—匈牙利算法

交替路:从一个未匹配点出发,依次经过非匹配边、匹配边、非匹配边...形成的路径叫交替路。

增广路:从一个未匹配点出发,走交替路,如果途径另一个未匹配点(出发的点不算),则这条交替路称为增广路(agumenting path)。

由增广路的性质,增广路中的匹配边总是比未匹配边多一条,所以如果我们放弃一条增广路中的匹配边,选取未匹配边作为匹配边,则匹配的数量就会增加。匈牙利算法就是在不断寻找增广路,如果找不到增广路,就说明达到了最大匹配。

条目检索:匈牙利算法,二分图匹配

输入输出

输入:无难度

输出:无难度

使用模板(匈牙利算法)

bool find(int x){
	int i,j;
	for (j=1;j<=m;j++){    //扫描每个女生
		if (line[x][j]==true && used[j]==false)      
		{
			used[j]=1;
			if (girl[j]==0 || find(girl[j])) { 
				//没有配对或者能腾出个位置来,这里使用递归
				girl[j]=x;
				return true;
			}
		}
	}
	return false;
}

for (i=1;i<=n;i++)         //扫描每个男生
{
	memset(used,0,sizeof(used));    //这个在每一步中清空
	if find(i) all+=1;     //如果有新的匹配,那么新的匹配数一定为旧的匹配数+1
}

AC代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 1005
using namespace std;
int nxt[maxn];
bool mp[maxn][maxn];
bool vis[maxn];
int k,m,n;
bool find(int u){
	for(int i=1;i<=n;i++){
		if(!vis[i]&&mp[u][i]){
			vis[i]=1;
			if(!nxt[i]||find(nxt[i])){
				nxt[i]=u;
				return 1;
			}
		}
	}
	return 0;
}
int main(){
	while(scanf("%d",&k)&&k){
		scanf("%d%d",&m,&n);
		memset(mp,false,sizeof(mp));
		while(k--){
			int a,b;
			scanf("%d%d",&a,&b);
			mp[a][b]=1;
		}
		memset(nxt,0,sizeof(nxt));
		int ans=0;
		for(int i=1;i<=m;i++){
			memset(vis,0,sizeof(vis));
			if(find(i))ans++;
		}
		printf("%d\n",ans);
	}
	return 0;
}

参考链接

https://www.cnblogs.com/shenben/p/5573788.html

https://blog.youkuaiyun.com/sunny_hun/article/details/80627351

 

【从零开始入门unity游戏开发之——C#篇37】进程、线程、C# 中实现多线程有多种方案和async/await异步编程 进程、线程、C# 中实现多线程有多种方案和async/await异步编程 阅读详情

相关推荐

肿瘤基因组分析实战:VAF、MAF、CCF这些指标到底怎么算?(附Python代码示例)

本文通过Python代码示例,详细解析了肿瘤基因组分析中VAF、MAF和CCF三大核心指标的计算逻辑与应用。文章从VCF文件解析入手,逐步演示了变异等位基因频率、次等位基因频率及癌细胞分数的计算方法,并探讨了拷贝数变异对结果的影响及克隆结构推断的实战流程,为生物信息分析提供实用指南。

silver的专栏 1005

【入门】诚诚坐过山车 C++题解

题目描述: 诚诚想要挑战一下自己,于是打算去玩过山车。 过山车一排只坐一个人,诚诚胆子比较小,他要求必须坐在前面有人或者后面有人的空位置。 诚诚上车前只知道这批过山车总共有n个位置,已经有k个人坐上去了,请帮助诚诚计算一下最少有多少个位置符合他的要求,最多有多少个位置符合他的要求。 注:第一个位置的前面和最后一个位置的后面我们认为是没有人。 输入格式: 输入有两个整数n和k,n表示过山车座位的个数,k表示过山车上已有的人数。 输出格式: 输出两个整数,分别表示最少和最多符合他要求的位置。

zhnluorizhijian的博客 898

从零实战:基于华中8型数控系统的CNC数据采集与二次开发

本文详细介绍了基于华中8型数控系统的CNC数据采集与二次开发实战指南。从开发环境准备到核心数据采集实现,涵盖Windows平台配置、实时数据采集、报警处理等关键技术,帮助开发者快速掌握华中数控系统的数据采集能力,提升智能制造水平。

weixin_42561143的博客 811

AI智能体运行时正在商品化:事件日志、无状态执行与沙盒架构解析

AI智能体运行时(Agent Runtime)正从定制化组件演变为标准化基础设施,其核心范式正由‘上下文寄生’转向‘事件驱动+状态分离’。这一转变源于对LLM上下文窗口瓶颈与静默失效风险的工程回应,关键技术原理包括事件溯源(Event Sourcing)、命令查询职责分离(CQRS)及无状态函数执行模型。其技术价值在于实现上下文溢出免疫、崩溃可恢复、细粒度可观测性与生产级安全隔离;典型应用场景覆盖企业知识库问答、销售线索处理、合规数据处理等需长周期、多步骤、高可信的业务流程。Anthropic Manage

weixin_30851867的博客 635

RAG-Anything 实战:构建企业级多模态知识图谱问答系统

本文详细介绍了如何利用RAG-Anything构建企业级多模态知识图谱问答系统,解决跨模态文档处理的痛点。通过架构设计解析、部署实战指南和典型业务场景解决方案,帮助企业实现高效的知识管理和智能检索,提升决策效率。

weixin_29089057的博客 385

【即插即用模块】注意力篇 | TGRS 2025 | MFA聚特征+HPDown保细节+HFF融层级,三大模块各司其职,性能翻倍!

本文介绍了MTMLNet网络中的三大核心模块:MFA(多阶段特征聚合)、HPDown(混合池化下采样)和HFF(分层特征融合)。MFA通过双尺度深度卷积和注意力机制增强特征提取能力;HPDown结合平均池化和最大池化,有效保留下采样过程中的特征信息;HFF采用三注意力机制实现自适应特征融合。这三个模块协同工作,在红外小目标检测与分割任务中取得了SOTA效果。实验表明,各模块在特征提取、信息保留和融合方面均优于传统方法,可灵活应用于各类视觉任务中。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 282

二分图匹配(匈牙利算法)

ios::sync_with_stdio(false); 的使用 https://blog.youkuaiyun.com/yujuan_mao/article/details/8119529 过山车 https://blog.youkuaiyun.com/mengxiang000000/article/details/52199146 1 #include <...

104

【Bug已解决】Auto mode cannot determine the safety of an action — Claude Code 自动模式安全判断失败解决方案

将已知安全的操作添加到白名单,分类器不再拦截这些操作。# 步骤 1:编辑 Claude Code 配置"Read","Write"EOF# 步骤 2:白名单中的操作将自动通过# 不在白名单中的操作仍需分类器判断# 步骤 3:重启 Claude Codeclaude方案适用场景推荐指数难度方案一:手动审批偶发回退,安全优先⭐⭐⭐⭐⭐低方案二:/compact 压缩上下文超限导致⭐⭐⭐⭐低方案三:拆分步骤复杂操作触发⭐⭐⭐⭐低方案四:跳过审批隔离环境,CI/CD。

博客 1万+

HDU 2063 过山车(二分图 && 匈牙利 && 最小点覆盖)

嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 这是一道很经典的匈牙利问题: 把男同学看成左边点,女同学看成右边点,如果两个同学愿意同坐过山车,则连边,最后输出最大匹配数即可... AC代码: 1 #include<cstdio> 2 #include<iostream...

weixin_30871905的博客 167

医疗影像分析实战:肺炎X光片分类与分割

医疗影像分析实战:肺炎X光片分类与分割 ,人工智能,计算机视觉,大模型,AI,在医疗领域,医疗影像分析技术凭借其高效、精准的特点,成为疾病诊断与治疗的重要辅助手段。肺炎作为一种常见的呼吸道疾病,严重威胁人类健康,通过 X 光片对肺炎进行诊断是临床常用方法。利用计算机技术实现肺炎 X 光片的自动分类与分割,不仅能减轻医生的工作负担,还能提高诊断的准确性和效率。本文将深入讲解肺炎 X 光片分类与分割的实战过程,结合大量代码示例和关键概念解析,帮助读者掌握相关技术。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

MATLAB GUI 水果成熟度分级系统设计与实现

本文基于 MATLAB GUI 设计并实现了一款水果成熟度分级系统,能够准确地评估水果的成熟程度。在实现过程中,我们运用了 MATLAB 中的函数实现对图像的处理和分析,同时使用 GUI 界面增加了系统的易用性。值得一提的是,在实际操作中,我们应该结合实际需求对系统进行相应的改进与完善,以满足不同领域和应用场景下的需求。实验结果表明,本系统可以有效地检测出水果的成熟度,并对其进行精准的评分。因此,本文设计并实现了一款基于 MATLAB GUI 的水果成熟度分级系统。三、MATLAB 代码实现。

uote_e的博客 707

HDU 2063 过山车(匈牙利算法求二分图最大匹配)

http://acm.hdu.edu.cn/showproblem.php?pid=2063 因为要补某一道cf题特意来学一下。。。 匈牙利算法关键在于在能“反悔”的时候尽量“反悔”进行新的匹配以获得更多的匹配数。具体建议看代码很好看懂~ 1 #define bug(x) cout<<#x<<" is "<<x<<endl ...

weixin_30907935的博客 127

【WRF模拟】土地利用类型的确定:最大覆盖法/瓦片法

土地利用类型的确定:最大覆盖法/瓦片法

WW、forever的博客 1529

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

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

dggnqzt6462的博客 69

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

假人有限元模型

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

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

转载自:http://www.w2bc.com/Article/49386 匈牙利算法:它由匈牙利数学家Edmonds于1965年提出,因而得名。此算法的核心就是寻找增广路径,通过增广路径来求二分图最大匹配的一种算法。 通过这个图片来讲述一下。黑色代表A\B\C\D四只小狗,红色代表四种口味的骨头,每一条线表示的是小狗喜欢吃这个口味的骨头。 我们按照顺序给小狗们分配骨头,先给A分

Lavi的专栏 885

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

二分图匹配(匈牙利算法,hungray)

二分图匹配(匈牙利算法,hungray)

日常记录,挨打要立正! 452

hdu 2063 过山车

过山车Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8001 Accepted Submission(s): 3509Problem DescriptionRPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的...

anque1234的博客 133

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

  经典的二分图最大匹配问题,因为匈牙利算法我还没有认真去看过,想先试试下网络流的做法,即对所有女生增加一个超级源,对所有男生增加一个超级汇,然后按照题意的匹配由女生向男生连一条边,跑一个最大流就是答案(以上所有边容量均为 1 ),我是直接上 Dinic 算法的模板的: 1 #include<cstdio> 2 #include<cstring&gt...

aidiao7379的博客 124

HDU 2063 过山车

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

苦鬼·。 247

hdu 2063 过山车 (最大匹配 匈牙利算法模板)

匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。 题目链接:   http://acm.hdu.edu.cn/showproblem.php?pid=2063 题目大意:   中文题目,点进去马上知道。 解题思路:   这...

weixin_30725467的博客 136

HDU 2063 过山车(二分匹配入门)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 二分匹配最大匹配数简单题,匈牙利算法。学习二分匹配传送门:http://blog.youkuaiyun.com/dark_scope/article/details/8880547 1 #include <iostream> 2 #include <cstdio> ...

weixin_30386713的博客 86

hdu2063 二分图的匈牙利匹配

过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...

weixin_30788731的博客 82

HDU2063_过山车_C++

  题目:http://acm.hdu.edu.cn/showproblem.php?pid=2063   又是一道二分图匹配的裸题,直接上匈牙利算法   注意一点它末尾的0结束,是标志着有多组数据……坑…… 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring>...

weixin_30455023的博客 265

【二分匹配】【匈牙利算法】

http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27568Accepted Submission(s): 11900...

aiyuneng5167的博客 99
上一篇: 2019-02-26-University Entrace Examination -ZOJ1023-稳定婚姻算法(变式)
下一篇: 模板-树状数组
silzero
博客等级 码龄8年 3粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值