【平面图理论】平面图学习笔记

【平面图理论】平面图学习笔记我为什么现在要学平面图因为顺切HNOI2010遇到了平面图判定…————————————–线割分是我>w首先是一些定义:什么是平面图?对于一个图G=,如果能把G画在一个平面上,且画出的图的任意两条边除了V中的节点没有其他交点,则图G为平面图.平面图的面:对于一个平面图,由如果存在一些边围成的区域,且这个区域内不包含这个图的点和边,那么我们称这个区域为该平面图的一个面

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

我为什么现在要学平面图
因为顺切HNOI2010遇到了平面图判定…

————————————–线割分是我>w<————————————————–

首先是一些定义:

什么是平面图?
对于一个图G=< V,E >,如果能把G画在一个平面上,且画出的图的任意两条边除了V中的节点没有其他交点,则图G为平面图.
平面图的:
对于一个平面图,由如果存在一些边围成的区域,且这个区域内不包含这个图的点和边,那么我们称这个区域为该平面图的一个面.
比如这里面的红色区域:
这里写图片描述
对于包围这个区域的那些边构成的圈,我们称之为这个面的边界.边界的长度,称为这个面的.
我们定义一个面的集合F,于是对于平面图我们可以将其表示为G=< V,E,F >
平面图的性质(具体内容及证明见国家集训队2003论文刘才良《平面图在信息学中的应用》):

1.若图G=< V,E,F >为连通平面图, fF d(f)  =2|E|
2.若图G=< V,E,F >为连通平面图, |V||E|+|F|=2

当然,对于不连通的平面图,我们可以把它分解成几个联通块,然后对每个联通块这两个性质都成立(这是很显然的),所以就可以得到对不连通的平面图的一些性质.这里我不再赘述.
从上面两个性质又可以得到如下推论:

对于给定的连通简单平面图G=< V,E,F >,若|V|>=3,则|E|<=3|V|-6,|F|<=2|V|-4

原文的第二个推论我觉得好像有问题我不贴了,反正第二个好像也没用
第一个推论的作用就是告诉我们E的数量级是O(|V|)的…

平面图的判定(才不会说我就是因为这个才学平面图的):
做法转自这里

哈密顿回路会连成一个环,这个图必定被分成两部分,如果两条边相交无论同时在内还是在外都会相交,只有一条在环内一条在外才行——二分图!首先判断出那些边不再回路上然后把有矛盾的边连边利用染色法判断能否构成二分图,二分图的成立决定了平面图的成立。

接下来是重点:平面图与对偶图
定义:对于一个平面图,如果它有源点汇点,我们称之为s-t平面图.
每个平面图都能建出相应的对偶图.
对于一个平面图G,其对偶图为G*.G*中的一个点,对应原图G中的一个面.
对于G中的每条边e,如果e属于两个面 f1,f2 ,那么我们在G*中对点 f1,f2 连一条边;
如果e只属于一个面f,那么在G*中对点 f,f 连一条自环边.
此时有定理:

1.G的面数等于G*的点数,G与G*的边数相等.
2.对于一个s-t平面图,其对偶图中的一个环对应原图中的一个割.

此时就可以看出我们引入平面图与对偶图有什么作用了.
我们都知道求最大流的算法与最短路算法在效率上有不小的差距.
当我们看到一个题数据范围极大但是像是最大流,却又担心单纯的写最大流会TLE的时候
如果原图满足是平面图,我们不妨先转化为求最小割,然后再建出其对偶图然后求解.
对对偶图跑一遍Heap-Dijkstra,利用它求出的距离来做距离标号,构造最大流.
具体题目我好像只知道BeiJing2006 狼与兔子QAQ
之后单独写题解

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141459.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • RabbitMQ流控-FLow Control

    RabbitMQ流控-FLow Control当Connection发布消息的速度太快,队列无法跟上(消费速度低于生产速度),RabbitMQ会降低Connection的速度,无需配置。流控的Connection可以在rabbitmqctl、管理UI和HTTPAPI响应中显示flow状态。这意味着连接每秒要经历多次阻塞和解除阻塞,以便将消息传入的速度保持在服务器其他部分(例如,将这些消息路由到的队列)能够处理的速度。一般来说,处于流…

  • python基础知识点(精心整理)_python编程基础知识

    python基础知识点(精心整理)_python编程基础知识在Python里,标识符有字母、数字、下划线组成。在Python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。Python中的标识符是区分大小写的。以下划线开头的标识符是有特殊意义的。以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用fromxxximport*而导入;以双下划线开头的__foo代表类的私有成员;以双下划线开头和结尾的foo代表Python里特殊方法专用的标识,如init()代表类的构造函

  • 【转】VS2013 产品密钥 – 所有版本[通俗易懂]

    【转】VS2013 产品密钥 – 所有版本[通俗易懂]VS2013产品密钥–所有版本VisualStudioUltimate2013KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9VisualStudioPremium2013KEY(密钥):FBJVC-3CMTX-D8DVP-RTQCT-92494VisualStudioProfessional2013KEY(密钥):XD…

  • 什么是pkl文件_桌面显示不出来怎么办是什么问题

    什么是pkl文件_桌面显示不出来怎么办是什么问题对于.pkl文件,我是在接触SMPL模型的时候用到的。SMPL的开源项目包里,有model文件夹,打开有两个.pkl文件。然后,找到了一个说的相对比较详细的网址https://jingyan.baidu.com/article/59a015e36ef251f794886598.html一、个人理解python中有一种存储方式,可以存储为.pkl文件。 该存储方式,可以将python项目过程中用到的一些暂时变量、或者需要提取、暂存的字符串、列表、字典等数据保存起来。 保存方式就是保存到创建的.p

  • redis可视化客户端工具TreeNMS

    redis可视化客户端工具TreeNMS

  • MySQL数据库:常见经典SQL语句

    MySQL数据库:常见经典SQL语句

发表回复

您的电子邮箱地址不会被公开。

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