POJ 2594 最大二分匹配 最小路径覆盖

poj2594 (最小路径覆盖 + floyd) 题目链接题目大意: 一个有向图中, 有若干条连接的路线, 问最少放多少个机器人,可以将整个图上的点都走过。 最小路径覆盖问题。分析: 这时最小路径覆盖问题, 最小路径覆盖 = |V| - 最大匹配数。 (有关最小路径覆盖,最大匹配问题,相关概念不懂得点这里) 当然做这道题还有一个坑!! 如果有向图的边有相交的情况,那么就不能简单的对原图求二分匹配了 详细讲解看这 #include<iost 阅读详情

题目在: http://poj.org/problem?id=2594

因为是按照分类做题目,所以在明知这个题目是 最小路径覆盖的时候,就匆忙写好代码,提交,结果WA。

检查半天,结果发现题目中的提示:You should notice that the roads of two different robots may contain some same point. 

而传统的最小路径覆盖的结果中,不同路径是不能出现重复点的。

所以这个题目中的 两个点之间是否可达就要重新定义了。

因为可以过相同的点,所以可以认为两个点,只要在按照图遍历的方法遍历的时候能遍历的到,就应该是联通的。

按照这个思路可以先用算法将 连接关系扩展,然后用扩展后的连接关系来 求最小路径覆盖: 


#include <stdio.h>
#include <memory.h>

#define MAX_NUM 505

int vvAdj[MAX_NUM][MAX_NUM];
bool visit[MAX_NUM];
int matched[MAX_NUM];
int nPoints;

bool dfs(int f)
{
	for(int i = 1; i <= nPoints; i++)
	{
		if(!visit[i] && vvAdj[f][i])
		{
			visit[i] = true;
			if(matched[i] == -1 || dfs(matched[i]))
			{
				matched[i] = f;
				return true;
			}
		}
	}
	return false;
}
void GetVVAdjacency()
{
	int i,j,k;

	for( k = 1; k <= nPoints; k++)
	{
		for( i = 1; i <= nPoints; i++)
		{
			for( j = 1; j <= nPoints; j++)
			{
				if( i != j)
				{
					if(vvAdj[i][k] && vvAdj[k][j] )
					{
						vvAdj[i][j] = 1;
					}
				}
			}
		}
	}
}
int main()
{
	int nRoad;
	while(scanf("%d%d",&nPoints, &nRoad) )
	{
		if(nPoints == 0 && nRoad == 0)
		{
			break;
		}
		memset(matched, -1, sizeof(matched));
		memset(vvAdj, 0, sizeof(vvAdj));

		int i;
		int f,t;

		for( i = 0; i < nRoad; i++)
		{
			scanf("%d%d", &f, &t);
			vvAdj[f][t] = 1;
		}

		GetVVAdjacency();
		int count = 0;
		for( i = 1; i <= nPoints; i++)
		{
			memset(visit, 0, sizeof(visit));
			if(dfs(i))
			{
				count++;
			}
		}
		printf("%d\n", nPoints - count);

	}
	return 0;
}


5G NR 物理层 流程一:从帧结构到TB块,PDSCH/PUSCH 资源映射与TBS计算实战 本文详细解析了5G NR物理层流程,从帧结构到TB块的计算,重点介绍了PDSCH/PUSCH资源映射与TBS计算的实战方法。通过具体案例和公式推导,帮助工程师掌握5G NR资源分配、MCS选择及TBS量化过程,解决实际部署中的常见问题。 阅读详情

相关推荐

activiti(六):activiti7的数据表和字段的解释

介绍activiti7的数据表和各表字段的含义,对于学习activiti7工作流引擎的运行过程很有帮助!

no problem的博客 1万+

Poj 2594 Treasure Exploration【可相交最小路径覆盖】

Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 8537   Accepted: 3487 Description Have you ever read any book about treasure exp

mengxiang000000 599

Win11 C盘爆满别慌!手把手教你安全迁移AppData和用户文件夹(附一键脚本)

本文针对Win11 C盘空间不足问题,提供了一套安全有效的解决方案。通过深入解析用户目录结构,指导用户利用符号链接和Robocopy工具,将AppData、下载文档等占用大户迁移至其他分区,并附带了自动化脚本,从根本上实现C盘瘦身,同时确保系统稳定和数据安全。

weixin_29231221的博客 2089

POJ二分匹配总结_匈牙利算法

二分匹配模板bool makepair(int t){ int i; for(i=1;i<=n;i++) { if(path[t][i]==1 && visited[i]==0) //i号男还没被需要并且和t号女互相喜欢 { visited[i]=1; //被t号女需要 if(match[i]==-1

黄廉政的专栏 3466

Chrome红页误报?手把手教你通过Search Console快速解除安全警告

本文详细解析了Chrome红页误报的常见原因及解决方案,重点介绍如何通过Google Search Console快速解除安全警告。内容涵盖误报诊断、技术修复、申诉技巧及长效预防措施,帮助网站管理员有效应对Google Safe Browsing的误判问题,确保网站安全状态快速恢复。

a1b2c的博客 992

思科路由器、交换机组网实验报告

通过思科模拟器搭建路由交换网络

ghj528的博客 1335

poj2594 机器人寻找宝藏(最小路径覆盖)

题目来源:http://poj.org/problem?id=2594 参考博客:http://www.cnblogs.com/ka200812/archive/2011/07/31/2122641.html 题解: 最小路径覆盖=|P|-最大匹配数 单向图且没有循环,不可能存在a到b,b又到a,并且可以经过已经经过的点,所以对整个图进行处理,间接连接的点可以看作是直接连接 ...

diandu7489的博客 169

本地AI语音生成与配音工作台Pandrator:从TTS到RVC的完整实践指南

语音合成(TTS)技术通过深度学习模型将文本转换为自然语音,其核心原理涉及声学建模与波形生成。这项技术不仅提升了人机交互体验,更在内容创作领域展现出巨大价值,广泛应用于有声书制作、视频配音、虚拟助手等场景。本文聚焦于一个集成了XTTS-v2、RVC等先进模型的本地化AI语音工作台——Pandrator,它通过模块化架构将语音合成、声音克隆、音频转录与翻译等流程无缝整合,为用户提供了一个图形化、可定制的完整解决方案。文章深入解析了其基于TTS与RVC(Retrieval-based Voice Convers

weixin_42676876的博客 340

poj2594 Treasure Exploration 最小路径覆盖=顶点数-最大匹配数

这道题走过的点可以重复走,这样不符合二分匹配,可是我们可以转化,最简单的就是使用floyd,比如说 1->2->3,2号点已经走过了,我们可以赋予从1->3可以直接到,不需要经过2号点就可以了,这样2号点就不会出现被重复覆盖的现象,那我们就使用floyd来解决问题,剩下的就是套模版的问题了 #include #include #include #include #include #i

shaonianguai 1202

从零开始:用ADS 2023手把手教你设计2.4GHz Wi-Fi LNA(基于ATF-54143,附模型文件)

本文详细介绍了如何使用ADS 2023软件设计2.4GHz Wi-Fi频段的低噪声放大器(LNA),基于ATF-54143晶体管。内容涵盖模型导入、直流工作点确定、稳定性优化、噪声匹配等关键步骤,并提供可下载的模型文件包,帮助工程师快速掌握LNA设计技巧。

weixin_42531128的博客 320

AI重塑运营商CRM:从传统办理到智能推荐的实战经验

本文探讨了AI技术如何重塑运营商CRM系统,从传统办理模式升级为智能推荐平台。文章首先分析了传统CRM系统在产品推荐效率、客户信息录入、业务流程和个性化服务等方面的痛点,提出AI赋能的解决方案。技术架构采用分层设计,包含智能推荐引擎、知识图谱系统和大模型集成三大核心模块。实战案例详细介绍了基于深度学习的智能推荐系统实现,包括用户行为特征提取、产品特征建模、推荐模型训练和实时推荐服务等关键组件代码实现,展示了AI如何提升运营商CRM系统的智能化水平和服务效率。

技术传感器的博客 1049

poj 2594 Treasure Exploration(可重点最小路径覆盖)(二分匹配+Floyd求传递闭包)

题意:不是赤裸裸的最小路径覆盖(走遍所有的点),正常的最小路径覆盖中两个人走的路径不能有重复的点,而本题可以重复。 分析:我们仍可将问题转化为最小路径覆盖。如果一个人需要经过另一个人走过的点的时候,让他直接从该点上空飞过去,越过该点,直接走下一个点。如果我们赋予每个人这种能力,那么求得的无重复点的最小路径覆盖结果,就是题目要求的结果,因为需要重复的地方只要飞过去,就可以不重复了。赋予这个能力

Ezereal的博客 516

【论文复现】——基于欧式聚类的车载点云道路提取

针对车载激光点云道路信息提取的问题,提出了一种基于欧式聚类的道路提取方法。首先通过统计滤波去除噪点以免对后续处理结果产生影响,然后用坡度滤波去除路坎点,使道路边界与人行道、绿化带等与路坎相连的地物形成10~25 cm的高程阶跃,最后用欧式聚类将路面点云与其他地物点云聚类为一簇或多簇并保留道路簇,从而实现道路点云的精确提取。

点云侠的博客 1135

POJ 2594 (最小路径覆盖+可重点)

这是一道典型的二分匹配的题目,问的是最少需要多少个机器人可以将点全部覆盖。 每个机器人散落在一个点上,每个机器人不能走回路。 公式: 最小路径覆盖数 = 顶点数 - 最大匹配数 最大匹配数用匈牙利算法可求的。 这里的关键是 每个机器人可以走过相同的点,也就是意味着 就算i和j没有边直接相连,但是如果它们都连着k的话,它们之间也可以达到。 这里很明显可以用 Floyd算法,三重循环!

Jaster_wisdom的专栏 633

android 蓝牙通讯demo

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

ssm框架搭建

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

POJ2594 最小路径覆盖

题意: 题意就是给你个有向无环图,问你最少放多少个机器人能把图全部遍历,机器人不能走回头路线。 思路: 如果直接建图,跑一遍二分匹配输出n - 最大匹配数会跪,原因是这个题目和以往见到的题目不一样的,区别就在,之前很多题目给的都是全边,就是假如 a->b b->c ,那么...

墨鱼菜鸡 309

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

poj 2594 Treasure Exploration (二分匹配)

Treasure Exploration Time Limit:6000MS Memory Limit:65536K Total Submissions:6558 Accepted:2644 Description Have you ever read any book about treasure explorat...

anque1234的博客 247

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

POJ-2594 Treasure Exploration(最小路径覆盖)

C - Treasure Exploration Time Limit:6000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Description Have you ever read any book about treasure exploration

信仰.的博客 717

二分匹配题解

poj 2239 Selecting Courses 题意:学校一周7天每天可以开12节课,现在给出每门课开课的时间(一周可重复多次),一周中最多可以上多少门课(每门课只算一次)。 裸的水二分匹配 poj2516 Minimum Cost 题意现在有n个顾客,m个供货商,k种商品,接下来输入n行顾客分别对k种商品的需求,再接下来输入m行分别为供货商分别提供的k种商品的数目,接下来有

新博客地址:sensirly.github.io 1111

POJ-2594 Treasure Exploration,floyd+最小路径覆盖!

Treasure Exploration       复见此题,时隔久远,已忘,悲矣!     题意:用最少的机器人沿单向边走完(覆盖)全部的点。典型的最小路径覆盖,如果不懂二分图匹配可以参考:二分图大讲堂 先用floyd传递闭包,再求最大匹配,最小路径覆盖=V-最大二分匹配(最小点覆盖)。为什么要用floyd传递闭包呢,每个点可以被多个机器人走过,博主就是这里没考虑到。。    我记得

NYIST_TC_LYQ的博客 742

K - Treasure Exploration - POJ 2594(最小路径覆盖+闭包传递)

题意:给一个有向无环图,求出来最小路径覆盖,注意一个点可能会被多条路径重复分析:因为有可能多条路径走一个点,可又能会造成匹配的不完全,所以先进行一次闭包传递(floyd),然后再用二分匹配的方法求出来最大匹配即可。*********************************************************************.#include<stdio.h&gt...

weixin_30613727的博客 113

poj 2594 Treasure Exploration 最少边覆盖+传递闭包

给出一个有向无环图,问最少多少条边就可以覆盖所有的点,很明显的最少路径覆盖问题,但是点可以重复用,这与hungary算法不太一样,我们可以这样处理,假设a要经过b点到c,但是b点已经被访问过,为了保证a顺利到c,就让a直接飞过b到c,也就是说添加一条a到c的边,这其实就是求传递闭包,我们可以通过floyd算法求出。然后ans=n-hungary()。 一开始用了邻接表的最大二分匹配,在求闭包

colorfulshark 730

POJ2594 Treasure Exploration(最小路径覆盖)

Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 8550   Accepted: 3495 Description Have you ever read any book about treasure exploration

Jelly_acm的博客 411

POJ2594 Treasure Exploration(二分图最小路径覆盖,传递闭包)

Description Have you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored treasure? If you never have such experiences, y

riba2534的博客 813

POJ 2594 Treasure Exploration(最小路径覆盖+Floyd求传递闭包)

题目链接 题目大意:  一个有向图中, 有若干条连接的路线, 问最少放多少个机器人,可以将整个图上的点都走过。 最小路径覆盖问题。 分析:  这时最小路径覆盖问题, 最小路径覆盖 = |V| - 最大匹配数。 (有关最小路径覆盖,最大匹配问题,相关概念不懂得点这里) 当然做这道题还有一个坑!! 如果有向图的边有相交的情况,那么就不能简单的对原图求二分匹配了 详细讲解看这

Rain 522
上一篇: POJ 3692 最小点覆盖 最大二分图匹配
下一篇: POJ 1548 最小路径覆盖
文西
文西 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄19年 967粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值