题目大意:给出一个无向图,保证这个图有哈密顿回路,求这个图是不是平面图。
思路:平面图的判定条件之一:如果边数大于点数*3+6那么这个图一定不是平面图。这算是一个强剪枝吧。
我们把图中哈密顿回路的这个环上的边去掉,就变成了判定边能否不想交的2-SAT问题,POJ好像有一个原题来着。建图方法我就不说了,相信大家看到2-SAT就知道怎么写了。
CODE:
#include ...
分类:
其他好文 时间:
2014-12-02 22:44:58
阅读次数:
237
http://www.lydsy.com:808/JudgeOnline/problem.php?id=1051
唔。。。这题好像在POJ上见过?
比较水的题,很好想出思路。牛和牛之间的关系就像有向图,牛a喜欢牛b相当于建立有向边a->b,然后在这个有向图中,每个强连通分量里的牛们相当于是相互喜欢的,把这个图缩点成DAG,DAG里如果有且仅有一个出度为0的点,则这个点对应强连通分量里的所有牛都...
分类:
其他好文 时间:
2014-12-02 22:37:47
阅读次数:
184
烦。。早上在写HDU 4338,发现细节太多了,写不了。原因其实是自己对TARJAN算法忘得差不多了。唉。。把之前想的一道循环节的题过了吧。。。再练练Tarjan,把4338也过了,加油。。。#include #include #include using namespace std;char s[...
分类:
其他好文 时间:
2014-11-30 13:55:34
阅读次数:
135
题目大意:给出一张有向图,每一个节点有一个权值,经过一次之后会取走节点上的权值。有一个原点,多个汇点,问最多能收获多少权值。
思路:做一次Tarjan将图变成拓扑图,然后直接跑SPFA+Heap,比较慢,但是用了高大上的namespace,很开心。
CODE:
#include
#include
#include
#include
#include
#defin...
1023: [SHOI2008]cactus仙人掌图Time Limit:1 SecMemory Limit:162 MBSubmit:1141Solved:435[Submit][Status]Description如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)...
分类:
其他好文 时间:
2014-11-27 08:00:03
阅读次数:
335
伸展树的原理及实现源代码(有图文详解和C++实现代码)
伸展树(Splay Tree)是一种二叉搜索树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造。它的优势在于不需要记录用于平衡树的冗余信息。在伸展树上的一般操作都基于伸展操作。
为什么需要伸展树(Splay Tree)
各种二叉搜索树存在不足。比如:对于一个有n个节点的平衡二叉搜索树,虽然最坏情况下每次查找的时间复杂度不会超过O(logn),但是如果访...
分类:
编程语言 时间:
2014-11-25 16:30:49
阅读次数:
227
tarjan求lca离线算法的简洁模板,树用孩子兄弟表示法表示,代码很短。...
分类:
其他好文 时间:
2014-11-25 16:27:13
阅读次数:
258
题目大意:有n个人,其中一个是杀手,可以询问一些人,如果是杀手就会死,如果是平民,他会告诉你他认识的人中有谁是杀手有谁是平民
警告:数据有误,请谨慎提交!
易知如果我需要访问x个人,那么答案就是1-x/n 我们需要访问最少的人
如果我访问的人是平民,那么这个点所有的后继我都能知道
于是Tarjan缩点之后入度为零的点就是答案
但是还有一个问题 比如说这组样例
3 1
1 2
我访问...
分类:
其他好文 时间:
2014-11-23 16:04:50
阅读次数:
198
在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。
求割点与桥的算法是R.Tarjan发明的,本文用邻接矩阵存储图的信息,实现了递归和非递归两种算法。 感觉非递归算法或许有更好的表达,但一时想不出来,请大牛指点,谢谢!...
分类:
其他好文 时间:
2014-11-21 23:22:51
阅读次数:
408
在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。
求割点与桥的算法是R.Tarjan发明的。本文用边表集存储图的信息,实现了递归和非递归两种算法。...
分类:
其他好文 时间:
2014-11-21 09:11:16
阅读次数:
243