[BZOJ1997/HNOI2010]平面图判定

Description

Input

Output

 
 
是的、、BZOJ样例都没给。
 
 
题解(from 出题人):
  如果只考虑简单的平面图判定,这个问题是非常不好做的。
但是题目中有一个条件——这张图存在一条哈密顿回路。
我们把哈密顿回路在平面上画成一个圆。仔细观察一下。
  每条边如果画在圆内都是一条弦,那如果弦在圆内相交怎么办?把另一条弦翻出去。能不能两条弦都翻出去呢?不能,因为如果两条边在圆内相交,那么它们在圆外也会相交。那我们是不是就相当于就多了一个条件:这两条边不能同时在一个域内。
  所以,这张图中总共只有两个域,圆内和圆外。那么我们是不是就转化了模型:有若干个点和若干条边,你要给每个点黑白染色,使得每条边的两个端点颜色不同。直接DFS就可以了。还有个问题,边数是10^4,暴力连边会超时,但是平面图有一个定理:m<=3*n+6,那这个定理来剪枝就行了。

转载于:https://www.cnblogs.com/jinkun113/p/4894499.html

你可能感兴趣的:(数据结构与算法)