洛谷题目链接:https://www.luogu.org/problemnew/show/2661 一道有很多种解法的题目 通过划归,发现就是求最小环 那么立即能想到的算法:1、Tarjan求强连通分量,最无脑 2、对于每个连通分量用Topo Sort,相当于剪去其他不在环上的边 不过用带权并查集也 ...
分类:
其他好文 时间:
2017-11-27 20:07:20
阅读次数:
131
【Algorithms IV】求解强连通分量 Kosaraju算法 Kosaraju算法(也被称为Kosaraju–Sharir算法)是一个在线性时间内寻找一个有向图中的强连通分量的算法。 这个拗口的名字来自他的作者,但是查不到他的生平。应该是个印度人。 求解问题:要求有向图中的强连通分量的个数/划 ...
分类:
编程语言 时间:
2017-11-26 00:40:56
阅读次数:
211
Tarjan算法及其应用 引入 tarjan算法可以在图上求解LCA,强连通分量,双联通分量(点双,边双),割点,割边,等各种问题。 这里简单整理一下tarjan算法的几个应用。 LCA http://www.cnblogs.com/mjtcn/p/6852646.html 强联通分量 有向图的 强 ...
分类:
编程语言 时间:
2017-11-25 14:18:28
阅读次数:
186
计算机系DSA第二次Programming Assignment中第三题涉及到这个算法 【问题描述】 一个有向图中,有一些节点上有5角钱硬币,求问从指定的a顶点走到指定的b顶点,最多总共可以拿到多少硬币 【问题分析】 1. 一个有向图可以分解为强连通分量(Strongly Connected Com ...
分类:
其他好文 时间:
2017-11-25 13:05:21
阅读次数:
163
"原题" 这是一道简单的2 SAT! 其实2 SAT的题只要想明白怎么连边就很简单了啊! 这道题的连边思路还是很简单的啊~这里就不赘述了。 而对于是否存在可行解,只要判断是否在同一个强连通分量里。 cpp include include define N 1010 using namespace s ...
分类:
其他好文 时间:
2017-11-18 12:51:03
阅读次数:
129
http://poj.org/problem?id=1523 这题明显就是求割点然后求割完之后的强连通分量的个数。 割点都会求,怎么求割完的分量个数呢? 我们可以通过万能的并查集啊!(具体做法看代码吧,方法不好叙述) 这样我们查割点它所连的点一共隶属于几个集合即可。 (PS:读入方式很恶心,同时请注 ...
分类:
其他好文 时间:
2017-11-16 20:51:13
阅读次数:
103
[原题] (http://poj.org/problem?id=1236) 这是一道强连通分量板子题。 我们只用输出点数大于1的强连通分量的个数! ...
分类:
其他好文 时间:
2017-11-15 22:00:45
阅读次数:
126
[原题] (http://poj.org/problem?id=2186) 这是一个强连通分量板子题。 a thinks b is popular 即为a到b有一条边,要求被所有牛popular的牛的个数。 所求为对图进行强连通分量缩点后,没有出度的强连通分量里的点数(这样的强连通分量只能有一个)。 ...
分类:
其他好文 时间:
2017-11-15 21:44:26
阅读次数:
199
题目链接:https://vjudge.net/problem/UVA-11324 题解: 代码一: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algor ...
分类:
其他好文 时间:
2017-11-11 22:16:07
阅读次数:
266
我刚开始也不知道为什么就想到肯定是缩了点后把一个新点(原图中的强连通分量)的权值赋为它所含的所有点的权值之和,没有想着去推,纯粹是题目的名字启发我这么去干的……之后用SPFA 求最大路径,然而我连的全是无向边,导致答案错误了四个点,发现错误后觉得,之前的代码居然还对了六个点才是最让人震惊的。 1 # ...
分类:
其他好文 时间:
2017-11-08 22:53:45
阅读次数:
191