bzoj1997】的更多相关文章

[BZOJ1997]Planar(2-sat) 题面 BZOJ 题解 很久没做过\(2-sat\)了 今天一见,很果断的就来切 这题不难呀 但是有个玄学问题: 平面图的性质:边数\(m\)的最大值为\(3n-6\) 然后就可以把边数减到\(O(n)\)级别... 现在好了 因为已经告诉你了一个环 那就先把环给抠出来 剩下的就相当于给你若干条边, 你可以从环里面连也可以从环外面连 判定是否可以没有交点 很熟悉的\(2-sat\)了 连边缩点,判断一下可行性 搞定 一开始边开小了,身败名裂 #inc…
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…
题目链接 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 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的某熊猫题一模一样?(然而我并没有写那题的题解~) 本题可以理解为圆上有一些点之间要连线,这些线要么在圆里要么在圆外,问能否让所有的线都不…
Description Input Output     是的..BZOJ样例都没给.     题解(from 出题人): 如果只考虑简单的平面图判定,这个问题是非常不好做的. 但是题目中有一个条件——这张图存在一条哈密顿回路. 我们把哈密顿回路在平面上画成一个圆.仔细观察一下. 每条边如果画在圆内都是一条弦,那如果弦在圆内相交怎么办?把另一条弦翻出去.能不能两条弦都翻出去呢?不能,因为如果两条边在圆内相交,那么它们在圆外也会相交.那我们是不是就相当于就多了一个条件:这两条边不能同时在一个域内.…
2-SAT. 首先有平面图定理 m<=3*n-6,如果不满足这条件肯定不是平面图,直接退出. 然后构成哈密顿回路的边直接忽略. 把哈密顿回路当成一个圆, 如果俩条边交叉(用心去感受),只能一条边在圆内,另一条在圆外. 这个是2-sat的A,B要不同时取,要不同时不取模型. 如果俩个交叉,只能一个在内,一个在外. 和A,B俩者不能同时取有区别,需要注意. 可能存在3个方案(A,B'),(B,A'),(A',B'). 连方案都不要,直接tarjan完就过了. #include<cstdio>…
题意:给你一个哈密顿图,判断是不是平面图 思路:先找出哈密顿图来.哈密顿回路可以看成一个环,把边集划分成两个集合,一个在环内,一个在外.如果有两条相交边在环内,则一定不是平面图,所以默认两条相交边,转化成2——sat,两条边不能同时在内或外,注意双向加边.(以边来转化成两倍) #include<cstdio> #include<cstring> #include<iostream> #include<queue> #include<stack>…
开始填连通分量的大坑了= = 然后平面图有个性质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 这题把哈密顿回路看成圆,就变成圆上的点之间的边是…
题目链接 思路 首先以那个环为框架,把所有的边连出来.如果有两条边相交,那么就把其中一条放到环外面去. 如图: \((1,3)\)与\((2,5)相交,\)(1,4)\(与\)(2,5)相交.所以我们把\((2,5)\)这条边放到外面去. 就成了这样 就不会有边相交了. 显然如果两条边在环内相交,那么全部挪到环外也会相交.所以只要是相交的两条边必定是一个在环内,一个在环外. 然后就是2-sat模型了. 坑点... 犯了一些很zz的错误. 1.如果边的数量>点的数量乘3-6,即\((m > n…
相交的两条边不能在同一侧,用2-sat即可. 平面图点数-边数关系 \(E\le 3V-6\) 写这篇文章我只是想说明,知乎一小时,题解一分钟. lb Zhihu, gos langar Qarwet con Nii Owenoicuukoanimacionihlimo. mn gos log ab de Saro Daz. ne sar gos caff gos wid tei os cuu "Avloqarwet".…
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,则两条边会在环内相交 #…
题解: 在圆上面的点能不能不交叉 和那一题差不多 http://www.cnblogs.com/xuanyiming/p/8110597.html 代码: #include<bits/stdc++.h> using namespace std; ; int read() { ,f=;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar();} return x*f; } int T,n,m,ind,top,cnt,scc,u[N],v[N];…
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. 有一个想法就是把哈密顿回路当成一个壳,枚举每一条边,再…
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…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1997 神奇的经典2-SAT问题! 对于两个相交的区间,只能一里一外连边,所以可以进行2-SAT问题的建模: 但 m 太大了,可以用一个平面图的定理,m <= 3*n - 6 来缩小范围: 注意特判要等读入结束后再判掉!!! 代码如下: #include<iostream> #include<cstdio> #include<cstring> using na…
传送门 几乎和这个题一样,就不说题意了,比较特殊的点就是,这里有个结论: 平面图的边数\(m<3n-6\),\(n\)为点数. 所以我们可以通过这个减枝,\(m\)较大时直接输出\(no\).小范围直接上\(2-sat\)判断是否可行就行. 代码如下: /* * Author: heyuhhh * Created Time: 2019/11/29 18:38:08 */ #include <iostream> #include <algorithm> #include <…
题意 判断一个存在哈密顿回路的图是否是平面图. 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条边,…
  n个布尔变量,满足m个如 A为x或B为y的限制 建一个点拆成两个,分别表示选TRUE或FALSE 建立A的!x B的y 的连边 与 A的x B的!y 的连边 每次dfs. 若一个点在之前条件下无论选TRUE或FALSE都无法满足条件,则无论如何都无法满足条件故无需回溯 ---------------------------------------------- 正解tarjan(BZOJ1997) #include <cstdio> #include <iostream> us…
目录 DP 四边形不等式 数论 & 数学 数据结构 树链剖分 左偏树的性质及\(O(n)\)的构造 图论 树 二分图 竞赛图 平面图 双连通分量 字符串 后缀自动机 复杂度分析 没什么好写的..(懒得补) 一些博客:http://www.cnblogs.com/GuessYCB/p/9090878.html http://www.cnblogs.com/fenghaoran/p/remember.html DP 四边形不等式 参考 一般对于如下形式状态转移方程:\(f[i][j]=\min\ o…
counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ1202 BZOJ1051 BZOJ1001 BZOJ1588 BZOJ1208 BZOJ1491 BZOJ1084 BZOJ1295 BZOJ3109 BZOJ1085 BZOJ1041 BZOJ1087 BZOJ3038 BZOJ1821 BZOJ1076 BZOJ2321 BZOJ1934 BZOJ…
2-sat问题是一种常见的问题.给定若干个01变量,变量之间满足一些二元约束,求是否有解存在.若存在,给出可行解或依照字典序给出最优解. 以下给出与其相应的图论模型:给每一个变量i设立2个点,我的习惯是记为T(i),F(i),分别表示其值取1,0. 以下考虑的便是怎样进行限制了. 一般的限制形式均例如以下所看到的: 变量i取x时,变量j仅仅能取y,那么表示i取x的点向表示j取y的点连一条有向边.表示推出关系. 类似的,若表示变量i取x时,变量j不能取y,那么表示i取x的点向表示j取~y的点连一条…
2-SAT习题讲解 讲在前面:下述例题不是按照难度顺序的,而且基本就只会讲解建图的过程.下面讲解中$A'$为$A$的反向状态. 一.bzoj习题 例一:$bzoj2199 奶牛议会$ 首先我们考虑本题是$A$或$B$的问题,所以我们的建图策略为将$A'$连向$B$,表示若不选择$A$,则一定选择$B$.同样我们还需要将$B'$连向$A$.这个模型是$2-SAT$的最基本模型,由于$n$非常小,所以我们可以运用$O(n^2)$的做法来输出方案. #include <cstdio> #includ…
沿着黄学长的步伐~~ 红色为已刷,黑色为未刷,看我多久能搞完吧... Update on 7.26 :之前咕了好久...(足见博主的flag是多么emmm......)这几天开始会抽时间刷的,每天几道就行了. BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ1202 BZOJ1051 BZOJ1001 BZOJ1588 BZOJ1208 BZOJ1491 BZOJ1084 B…