首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
bzoj1997 Planar
】的更多相关文章
bzoj1997 Planar
题目链接 思路 首先以那个环为框架,把所有的边连出来.如果有两条边相交,那么就把其中一条放到环外面去. 如图: \((1,3)\)与\((2,5)相交,\)(1,4)\(与\)(2,5)相交.所以我们把\((2,5)\)这条边放到外面去. 就成了这样 就不会有边相交了. 显然如果两条边在环内相交,那么全部挪到环外也会相交.所以只要是相交的两条边必定是一个在环内,一个在环外. 然后就是2-sat模型了. 坑点... 犯了一些很zz的错误. 1.如果边的数量>点的数量乘3-6,即\((m > n…
【BZOJ1997】Planar(2-sat)
[BZOJ1997]Planar(2-sat) 题面 BZOJ 题解 很久没做过\(2-sat\)了 今天一见,很果断的就来切 这题不难呀 但是有个玄学问题: 平面图的性质:边数\(m\)的最大值为\(3n-6\) 然后就可以把边数减到\(O(n)\)级别... 现在好了 因为已经告诉你了一个环 那就先把环给抠出来 剩下的就相当于给你若干条边, 你可以从环里面连也可以从环外面连 判定是否可以没有交点 很熟悉的\(2-sat\)了 连边缩点,判断一下可行性 搞定 一开始边开小了,身败名裂 #inc…
【BZOJ1997】[Hnoi2010]Planar 2-SAT
[BZOJ1997][Hnoi2010]Planar Description Input Output Sample Input 2 6 9 1 4 1 5 1 6 2 4 2 5 2 6 3 4 3 5 3 6 1 4 2 5 3 6 5 5 1 2 2 3 3 4 4 5 5 1 1 2 3 4 5 Sample Output NO YES 题解:跟POJ的某熊猫题一模一样?(然而我并没有写那题的题解~) 本题可以理解为圆上有一些点之间要连线,这些线要么在圆里要么在圆外,问能否让所有的线都不…
[bzoj1997][Hnoi2010]Planar(2-sat||括号序列)
开始填连通分量的大坑了= = 然后平面图有个性质m<=3*n-6..... 由平面图的欧拉定理n-m+r=2(r为平面图的面的个数),在极大平面图的情况可以代入得到m=3*n-6. 网上的证明(雾?): http://blog.chinaunix.net/uid-26510579-id-3183558.html http://www.zybang.com/question/673815bbe56e8b5639f95234b515b8c5.html 这题把哈密顿回路看成圆,就变成圆上的点之间的边是…
bzoj千题计划231:bzoj1997: [Hnoi2010]Planar
http://www.lydsy.com/JudgeOnline/problem.php?id=1997 如果两条边在环内相交,那么一定也在环外相交 所以环内相交的两条边,必须一条在环内,一条在环外 这就成了2-sat问题 时间复杂度为(T*(m^2+n)),T 飞 平面图有一个结论:边数<=点数*3-6 m就与n同阶了 判断两条边是否在环内相交: 设一条边为(ui,vi),一条半为(uj,vj) 且 u在环上的编号<v 如果 ui<uj<vi<vj,则两条边会在环内相交 #…
BZOJ1997 [Hnoi2010]Planar 【2-sat】
题目链接 BZOJ1997 题解 显然相交的两条边不能同时在圆的一侧,\(2-sat\)判一下就好了 但这样边数是\(O(m^2)\)的,无法通过此题 但是\(n\)很小,平面图 边数上界为\(3n - 6\),所以过大的\(m\)可以判掉 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<ma…
[BZOJ1997][Hnoi2010]Planar 2-sat (联通分量) 平面图
1997: [Hnoi2010]Planar Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2317 Solved: 850[Submit][Status][Discuss] Description Input Output Sample Input 2 6 9 1 4 1 5 1 6 2 4 2 5 2 6 3 4 3 5 3 6 1 4 2 5 3 6 5 5 1 2 2 3 3 4 4 5 5 1 1 2 3 4 5 Sample Outp…
bzoj1997: [Hnoi2010]Planar
2-SAT. 首先有平面图定理 m<=3*n-6,如果不满足这条件肯定不是平面图,直接退出. 然后构成哈密顿回路的边直接忽略. 把哈密顿回路当成一个圆, 如果俩条边交叉(用心去感受),只能一条边在圆内,另一条在圆外. 这个是2-sat的A,B要不同时取,要不同时不取模型. 如果俩个交叉,只能一个在内,一个在外. 和A,B俩者不能同时取有区别,需要注意. 可能存在3个方案(A,B'),(B,A'),(A',B'). 连方案都不要,直接tarjan完就过了. #include<cstdio>…
BZOJ1997 [Hnoi2010]Planar (2-sat)
题意:给你一个哈密顿图,判断是不是平面图 思路:先找出哈密顿图来.哈密顿回路可以看成一个环,把边集划分成两个集合,一个在环内,一个在外.如果有两条相交边在环内,则一定不是平面图,所以默认两条相交边,转化成2——sat,两条边不能同时在内或外,注意双向加边.(以边来转化成两倍) #include<cstdio> #include<cstring> #include<iostream> #include<queue> #include<stack>…
BZOJ1997:[HNOI2010]PLANAR——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1997 https://www.luogu.org/problemnew/show/P3209 若能将无向图G=(V,E)画在平面上使得任意两条无重合顶点的边不相交,则称G是平面图.判定一个图是否为平面图的问题是图论中的一个重要问题.现在假设你要判定的是一类特殊的图,图中存在一个包含所有顶点的环,即存在哈密顿回路. m>3*n+6显然为NO. 有一个想法就是把哈密顿回路当成一个壳,枚举每一条边,再…