pku2594 最小路径覆盖

本文介绍了一种解决n个点的有向无环图最小路径覆盖问题的方法,通过使用Floyd算法进行传递闭包处理,并将问题转化为二分图匹配问题来求解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话说noip之后终于发现了最小路径覆盖原来是二分图匹配(其实noip前考过但是由于我太菜不知道),其实我感觉真正的进步是从noip后,可惜noip后没有以前那种感觉了,不知道为什么(具体情况等我哪天有心情了写篇长篇大论)。

题目大意:

  n个点的有向无环图,让你求它的最小路径覆盖(点可以重复)。

简略题解:

  因为点可以重复,所以电和点的关系是可以传递的,所以就先传递闭包,也就是传说中的floyd(我说floyd强大吧,其实还有很多东西用得着它)。然后就变成了普通的最小路径覆盖问题了。

  普通的最小路径覆盖:

  我们把每个点拆成两个点,变成一个二分图。如果i和j有边那么连一条从i到j'的边,然后做最大匹配。求出的最大匹配数为ans,那么最小路径覆盖数就是n-ans。

  因为每一个匹配也就是少用了一条路径。。体会一下这个思想,真的很神奇。

附代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值