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

【平面图理论】平面图学习笔记我为什么现在要学平面图因为顺切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
之后单独写题解

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

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

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


相关推荐

  • linux拷贝目录并修改名字,linux复制文件夹、重命名文件夹、删除文件夹

    linux中复制命令为cp(即copy缩写),重命名使用mv命令(即move缩写)来实现,删除命令为rm(即remove缩写)。如果操作对象是单个文件,复制和删除以及重命名很简单,如下:cpa.txtA.txt(将a.txt另存为A.txt)mva.txtA.txt(将a.txt重命名为A.txt)rma.txt(删除a.txt)linux删除和复制文件夹但是如果直接用下面…

    2022年4月6日
    288
  • mysql截取字符串并更新_mysql 截取字符串并 update select

    mysql截取字符串并更新_mysql 截取字符串并 update select亲测有效格式为update需要修改的表b1innerjoin(查询到的临时表)b2onb1.id=b2.idsetb1.要修改的字段=b2.查询到的值因为想要把表中的一个字段的一部分取出来,另放一个新的字段里面,所以想到了mysql的字符串截取功能。需要更新的数据:selectparams,substring_index(params,’=’,-1),paramI…

    2022年6月11日
    113
  • 60mph和kmh换算_100mph等于多少kmh

    60mph和kmh换算_100mph等于多少kmh等于163.93公里每小时,Mph是属于英国的速度换算率,和我国所使用的Km/h有所区分,我国使用的这种方式为公制的速度换算率,而在美国、英国以及一些英联邦国家,所采用的计算速度方式,都是使用的mph。什么是MPH就是以一个速度计量单位,能够表示出每小时多少英里,也就是我们在行驶车辆的时候,车辆所行驶的速度,会被称为多少迈,按照换算比率,一迈等于1.609344千米每小时。全称为mileper…

    2022年6月28日
    132
  • java时间计数_java计算方法耗时

    java时间计数_java计算方法耗时java时间计数

    2022年4月20日
    46
  • 增强的for语句可以方便地遍历数组_java遍历字符串

    增强的for语句可以方便地遍历数组_java遍历字符串增强for循环快捷键:iter+回车键。for增强for循环和普通for循环的区别普通for循环可以没有遍历的目标,增强for循环。缺点不能在这个增强循环里动态删除集合里面的内容,获取下标等。使用场景增强for循环主要就是为了方便遍历。…

    2022年9月2日
    3
  • 按位异或解题技巧「建议收藏」

    按位异或解题技巧「建议收藏」按位异或可以解决类似开灯问题一类的问题。首先了解下什么是按位异或:异或运算:首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数!参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:  0^0=0,  1^0=1,  0^1=1,  1^1=0按位异或的3个特点:…

    2022年6月4日
    38

发表回复

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

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