关于平面图到对偶图的转化

关于平面图到对偶图的转化闲话哇对偶图真的是个好东西,昨天考NOI2010的时候前两道很快做完了,看着t3发呆了1个多小时,啥也想不出来.看着网格图突然想到听说bzoj1001狼抓兔子可以用对偶图求解.对偶图是啥我也不知道,听说把面看成点,连边后跑一边最短路就可以了.但是当时想到这个突然发现自己不会建对偶图,看时间还有一个多小时,于是建了8种可能的图,每一个都跑一遍spfa,发现有一个可以过样例,手

大家好,又见面了,我是你们的朋友全栈君。

闲话

哇对偶图真的是个好东西, 昨天考NOI2010的时候前两道很快做完了, 看着t3发呆了1个多小时, 啥也想不出来. 看着网格图突然想到听说bzoj1001狼抓兔子可以用对偶图求解. 对偶图是啥我也不知道, 听说把面看成点, 连边后跑一边最短路就可以了. 但是当时想到这个突然发现自己不会建对偶图, 看时间还有一个多小时, 于是建了8种可能的图, 每一个都跑一遍spfa, 发现有一个可以过样例, 手动模拟一下觉得这种建图没错, 就交上去了. 没想到居然还对了, 哈哈NOI2010我居然290(spfa被卡了一个点), 心中狂喜, 但是一想到t1做过, t3蒙对也就不敢说什么了, 而且这是10年的题了, 时代在进步啊…

什么是平面图?

平面图的定义就是所有的边只在顶点处相交, 这里就是一个例子.


这里写图片描述


你看, 边与边之间没有相交吧~.
其实这是论文PPT的图, 本人画的太丑就不挂出来了.

So…对偶图?

对于每一个平面图, 都有与其相对应的对偶图. 我们假设上面的例图是图G, 与其对应的对偶图G*, 那么对于G*来说, G*上面的每一个点, 对应的是G里面的每一个面. 比如说下面就是G*.

这里写图片描述

上面的点就是对偶图G里的点.
那么关于对偶图G*里的边呢 ? 对于G中本来的每条边e, 他是两个面(比如说面f1和f2)的交边, 那么在对偶图里, 我们对这两个面(f1, f2)所映射在G*里的点连线(f1* 连向f2*). 如果f1 == f2(比如说G中5, 6这条边, 边的两侧都是同一个面, 那我们就建一条回边.
图就长这样(回边在5, 6那里).


这里写图片描述


这个就是对偶图了.

平面图与对偶图之间的关系

1.G*中的环与G中的割一一对应.(割就是一些边, 如果割掉这些边使图分成两个互不连通的子图的话, 就称之为割).
举例: 1*-2*-3*-4*这个G*里的环, 对应的是G中1-3, 2-3, 3-4, 3-5这个割.
TIPS:这个性质对于平面图的最小割有巨大的作用.

2.G的面数等于G*的点数, G与G*的边数相同.

The END

希望能对大家有所帮助. 平面图转对偶图在平面图网络流问题里面作用巨大. 最小割转对偶图最短路问题解法:Click Here.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141132.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • fiddler和charles哪个好用_charles手机设置代理后上不了网

    fiddler和charles哪个好用_charles手机设置代理后上不了网前言Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。此时,我们只需网上找一个注册码即可解

    2022年7月28日
    3
  • linux ptrace函数

    linux ptrace函数【ptrace系统调用】功能描述:提供父进程观察和控制另一个进程执行的机制,同时提供查询和修改另一进程的核心影像与寄存器的能力。主要用于执行断点调试和系统调用跟踪。父进程可通过调用fork,接着指定所产生的子进程的PTRACE_TRACEME行为,最后使用exec等操作来初始化一个进程跟踪。可替代的做法是,父进程通过PTRACE_ATTACH请求跟踪一个现存进程的执行。当子进程

    2025年6月14日
    0
  • Java中socket传送中文乱码问题解决方法

    Java中socket传送中文乱码问题解决方法在用socket传送中文的时候,经常会遇到乱码问题,令人头痛。解决方法其实很简单,客户端在接收时,对BufferedReader对象进行一些设置就OK了。代码如下:BufferedReaderin = new BufferedReader(new InputStreamReader(s.getInputStream(),”GB2312″));

    2022年7月8日
    19
  • unix查看资源使用情况_王的命令第六集资源

    unix查看资源使用情况_王的命令第六集资源系统资源主要是内存、磁盘、CPU三项,其中任一项资源用尽都会造成系统崩溃。逻辑CPU数=物理CPU数*每个物理CPU核数

    2022年8月1日
    3
  • iptables 常用命令

    iptables 常用命令

    2022年3月8日
    42
  • macbook重设密码服务器错误_网页显示500错误

    macbook重设密码服务器错误_网页显示500错误在网上查了查解决方案如下:1。右键我的电脑–管理–本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。2。开始–运行–打cmd,然后cdD:InetpubAdminscripts(我的系统在D盘),然后cscript.exeadsutil.vbssetw3svc/wamuserpass你的密码,然后cscript.exeadsutil.vbssetw…

    2022年8月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号