P3209 [HNOI2010]平面图判定】的更多相关文章

P3209 [HNOI2010]平面图判定 哈密尔顿环之外的任意一条边,要么连在环内部,要么连在环外部 判断两条边在同一部分会相交,则这两条边必须分开 那么把边看作点连边,跑二分图染色就行 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; typedef long long LL; const LL maxn=50000…
P3209 [HNOI2010]平面图判定 题意 题目描述 若能将无向图\(G=(V,E)\)画在平面上使得任意两条无重合顶点的边不相交,则称\(G\)是平面图.判定一个图是否为平面图的问题是图论中的一个重要问题.现在假设你要判定的是一类特殊的图,图中存在一个包含所有顶点的环,即存在哈密顿回路. 输入输出格式 输入格式: 输入文件的第一行是一个正整数\(T\),表示数据组数 (每组数据描述一个需要判定的图).接下来从输入文件第二行开始有\(T\)组数据,每组数据的第一行是用空格隔开的两个正整数\…
链接: P3209 题意: 给出 \(T\) 张无向图 \((T\leq100)\),并给出它对应的哈密顿回路,判断每张图是否是平面图. 分析: 平面图判定问题貌似是有线性做法的,这里给出链接,不是本题解重点. 在想不到上述算法的情况下,我们发现题目给出了该图的哈密顿回路,所以我们把无向图按哈密顿回路排成一个环.此时不在环上的边之间才可能出现交叉,所以我们考虑暴力 \(O(m^2)\) 枚举,对于可能产生交叉的两条边,只有他们在环的两侧时才不会相交,所以当 \(a,b\) 两条边可能相交时, \…
传送门 看到哈密顿回路就被吓傻了……结果没有好好考虑性质…… 首先,平面图有个性质:边数小于等于$3n-6$(我也不知道为啥),边数大于这个的直接pass 然后考虑原图,先把哈密顿回路单独摘出来,就是一个环.对于每一条不在哈密顿回路上的边,有两种可能,一种是在环内,一种是在环外 我们用点来表示每一条边,把每一个点拆成两个分别表示这条边是在环内还是环外.对于两条边$i,j$,如果他们同时在环外或环内会交叉,那么就相当于有了约束条件,转化成一个2-SAT问题即可 至于连边,我们设$i$表示在环内,$…
bzoj1997 [HNOI2010]平面图判定Planar 链接 bzoj luogu 思路 好像有很多种方法过去.我只说2-sat 环上的边,要不在里面,要不在外边. 有的边是不能同时在里面的,可以O(m^2)的连边 但是m是10000,不过平面图内边数不得超过3*n-6, m太大的直接NO就好了,其他的n,m是一个数量级的,直接2-sat暴力连边做就好了. 细节 双向边 是边m进行2-sat,不是点n 代码 #include <bits/stdc++.h> using namespace…
Description Input Output     是的..BZOJ样例都没给.     题解(from 出题人): 如果只考虑简单的平面图判定,这个问题是非常不好做的. 但是题目中有一个条件——这张图存在一条哈密顿回路. 我们把哈密顿回路在平面上画成一个圆.仔细观察一下. 每条边如果画在圆内都是一条弦,那如果弦在圆内相交怎么办?把另一条弦翻出去.能不能两条弦都翻出去呢?不能,因为如果两条边在圆内相交,那么它们在圆外也会相交.那我们是不是就相当于就多了一个条件:这两条边不能同时在一个域内.…
Description: 若能将无向图 \(G=(V, E)\) 画在平面上使得任意两条无重合顶点的边不相交,则称 \(G\) 是平面图.判定一个图是否为平面图的问题是图论中的一个重要问题.现在假设你要判定的是一类特殊的图,图中存在一个包含所有顶点的环,即存在哈密顿回路.输入输出格式输入格式: 输入文件的第一行是一个正整数 \(T\),表示数据组数 (每组数据描述一个需要判定的图).接下来从输入文件第二行开始有 \(T\) 组数据,每组数据的第一行是用空格隔开的两个正整数 \(N\) 和 \(M…
传送门 题意:$T$组数据,每组数据给出一个$N$个点,$M$条边,并存在一个$N$元环的图,试判断其是否为一个可平面图(如果存在一种画法,使得该图与给出的图同构且边除了在顶点处以外互相不相交,则称其为可平面图)$T \leq 100 , N \leq 200 , M \leq 10000$ 关于平面图的性质可以参照这一个PPT 我们需要用到平面图的一个推论:在极大平面图(不能再加边的平面图)上,$M = 3 \times N - 6$(PPT里面有证明) 所以对于$M > 3 \times N…
标签:二分图判定.题解: 首先可以把题目中给你的那个环给画出来,这样就可以发现对于任意一个图来说,如果两条边要相交,就不能让他们相交,那么这两条边就要一条在里面一条在外面,如果把环画成一条链,那么就是一条在下面,一条在上面.于是我们想到对于边,O(n2)的枚举,判断是否相交即可,如果相交的话,就要连一条边,到时候判断这一个图(把原图边看成新图的点)是不是二分图即可,简单的二分图染色判定即可. 当然了O(n2)对于10000条边来说,因为有多组数据,会被卡掉,那么我们就要想办法,点这么少,边这么多…
题意 判断一个存在哈密顿回路的图是否是平面图. n≤200,m≤10000n\le200,m\le10000n≤200,m≤10000 题解 如果一定存在一个环,那么连的边要么在环里面要么在外面.那么把在同侧会矛盾的边之间连边,如果是一个二分图就是平面图. 有问题的是边数是O(m2)O(m^2)O(m2)的.但是可以发现当m>n∗3−6m>n*3-6m>n∗3−6的时候一定形成不了平面图.所以就判一下,如果小于等于就O(m2)O(m^2)O(m2)做. 证明:先画出一条环,有nnn条边,…