【hnoi2010】平面图判定

来源:互联网 发布:超次元矩阵要关服了吗 编辑:程序博客网 时间:2024/05/01 14:47

题目描述很简单:

      把一些元素划分到两个集合,其中某些元素不能再一个集合,问是否可行。

      数据组数<=100,N<=200,M<=10000;

关于集合划分的判定性问题,很容易联想到2-sat构图。

总之思想十分简单,把每个点拆分成两个点 a 和 b ,意义是这个元素在A集合或B集合。

对与两两不可以处于同一个集合的点 i 和 j ,连接ai-bj,aj-bi(无向),存在点p,ap可以到bp,那么就是矛盾的,可以理解为p如果在A集合,那么p在B集合。

      以边为点,那么将会有M2条边,思维就在这里卡住了。

      后来仔细分析了一下,发现其实在一个n个点的哈密顿回路内部,最多有n-3条边,因此,这样的n个点的图如果有超过3N-6的边,那么一定不是平面图。所以,只有在m<=3n-6的时候才需要进行判定。

      最后算法复杂度为O(N2T);

贴代码:

原创粉丝点击