强连通
文章平均质量分 83
luckyone2014
想思路是苦涩艰辛的,但是打代码是愉快的。
展开
-
强连通模板
转自/*时间复杂度为O(n+m)黑匣子:先最初调用1、init()2、把图用add 存下来,注意图点标为1-n,若是[0,n-1]则给所有点++;3、调用tarjan_init(n); 再调用suodian();4、新图就是vectorG[]; 新图点标从1-tar ;5、对于原图中的每个点u,都属于转载 2014-08-02 22:18:19 · 582 阅读 · 0 评论 -
POJ 3114 Countries in War 强连通tarjan缩点后 跑最短路spfa
题目说 ,战时有n座城市,某些城市间可以单向传递信息. 如果, 某几个城市两两都可以相互传递信息,那代表他们是一个国家的. 输入的E代表可以连通 的城市有那几对,X->Y 耗时H.一个国家之间传递信息可以瞬间完成. 所以这是一个有向有环图. 通过tarjan 缩点. 去环后. 把每个国家,也就是每个强连通分量之间的最短距离求出.然后跑一变spfa,就可以得出两个点的最短传输时间了.如果无法传输到输出 Nao e possivel entregar a carta;原创 2014-08-02 22:08:56 · 881 阅读 · 0 评论 -
hdu 1827 Summer Holiday tarjan+缩点
知道其他人也有一些别人的联系方式,这样他可以通知其他人,再让其他人帮忙通知一下别人。你能帮Wiskey计算出至少要通知多少人,至少得花多少电话费就能让所有人都被通知到吗?做法:先缩个点。然后团中只要有个点被通知,整个团,就通知到了。然后如果入度为0的团被通知到了,那整个图的人都被通知到了。原创 2015-07-10 16:24:57 · 729 阅读 · 0 评论