最小路径可重复点覆盖

对任意一个路径可重复点覆盖(不一定最小),如果存在一个点p被重复覆盖了,那么就任取经过其的两条路径···upv······xpy···。如果此时图中已经存在了(u,v)或者(x,y),假设存在(u,v),那么我们可以将···upv···变成···uv···,从而p的覆盖次数减少一,并且仍然是当前图的路径可重复点覆盖(也就是说任何一条路径的边都属于当前图);如果此时图中既不存在(u,v)也不存在(x,y),那么我们随便添加一条边,不妨添加(u,v),从而我们可以将···upv···变成···uv···p的覆盖次数减少一,并且是当前图的路径可重复点覆盖;一直重复上述过程,最后会得到一个新图,并且得到这个新图的路径点覆盖,而这个新图显然是传递闭包的子图,所以这个新图的路径点覆盖也就是传递闭包的一个路径点覆盖。也就是说原图的任意一个路径可重复点覆盖都可以转化成传递闭包的路径点覆盖;传递闭包的任意一个路径点覆盖,也可以转化成原图的路径可重复点覆盖,只需要将路径点覆盖中不属于原图的边(x,y)替换成原图中xy的路径即可

posted @   最爱丁珰  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示