// 此博文为迁移而来,写于2015年4月14日,不代表本人现在的观点与看法。原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vxnx.html1、前言我始终记得去年冬天有天吃完饭后,我们在买东西的时候讨论着强连通分量和Tarjan什么的。当时我真的什...
分类:
编程语言 时间:
2015-07-27 22:32:54
阅读次数:
282
对于一个强连通分量, 一定是整个走或者不走, 所以tarjan缩点然后跑dijkstra.---------------------------------------------------------------------#include#define rep(i, n) for(int i ...
题意:n个点m条边的有向图,问存在多少个点使得去掉这个点及相连的边后起点和终点不再联通。
思路:很容易想到Tarjan算法求割点,但是稍微一想就会知道不对,因为Tarjan算法求的是整个图的割点,而这里题目只要求能使起点和终点不连通的点。然后我们先用SPFA求出一条最短路径,那么要求的“割点”一定都在这条路径上,仔细想想就会知道。求出最短路径后从起点dfs,直到找到距离start最远的且在最短路径上的点v,那么v就是一个割点,这时更新start,令start=v,重复上面的dfs直到终点。为什么这么做呢?你...
分类:
其他好文 时间:
2015-07-26 11:09:33
阅读次数:
128
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269思路分析:该问题要求判断是否每两个房间都可以相互到达,即求该有向图中的所有点是否只构成一个强连通图分量,使用Tarjan算法即可求解;代码如下:#include #include #include ...
分类:
其他好文 时间:
2015-07-25 00:03:28
阅读次数:
166
题目链接: http://poj.org/problem?id=1144思路分析:该问题要求求出无向联通图中的割点数目,使用Tarjan算法即可求出无向联通图中的所有的割点,算法复杂度为O(|V| + |E|);代码如下:#include #include #include #include usi...
分类:
Web程序 时间:
2015-07-24 16:01:22
阅读次数:
141
【解析】Hash,离散化,Tarjan
[分析]
对于每个名字,首先离散化成编号。
用hash或者其他,反正不要最基本的就行了,否则O(N^2L)会爆掉。
然后请参考:http://www.cnblogs.com/Randolph87/p/3757817.html
[吐槽]
难得吐槽一下,做这道题竟然做了一个上午,开始暴力求标号,然后一直TLE。
中间map的数据范围少开了N...
分类:
其他好文 时间:
2015-07-24 13:02:58
阅读次数:
110
【解析1】暴力dfs
[分析]
由于数据范围N
结果第一次由于空间只开了2000就直接爆了,然后还用了邻接矩阵也挂了,第三次才AC。
我已经弱得无话可说了...
[小结]多用邻接矩阵。
[代码]#include
#include
#include
using namespace std;
const int N=2001;
struct G
{
int v,nx...
分类:
其他好文 时间:
2015-07-24 13:00:21
阅读次数:
253
求强连通量,为1输出Yes否则No
Tarjan算法模板
具体讲解:https://www.byvoid.com/zht/blog/scc-tarjan
#include "stdio.h"
#include "string.h"
struct Edge
{
int v,next;
}edge[100010];
int head[10010],stack[10010],dfn...
分类:
编程语言 时间:
2015-07-20 19:28:24
阅读次数:
192
强连通分量分解 tarjan算法 (hdu 1269)
题意:
给出一个有n个点m条边的有向图,判断该图是否只有一个强连通分量。
限制:
0
0
思路:
tarjan算法分解强连通分量。
/*强连通分量分解 tarjan算法 (hdu 1269)
题意:
给出一个有n个点m条边的有向图,判断该图是否只有一个强连通分量。
限制:
0 <= N <=...
分类:
编程语言 时间:
2015-07-20 16:37:29
阅读次数:
117
给出N个点,M条边,Q次询问
Q次询问每两点之间的最短距离
典型LCA 问题 Marjan算法解
#include "stdio.h"
#include "string.h"
struct Edge
{
int to,next,len;
}edge[20010];
struct Ques
{
int to,next,index;
}ques[2000010];...
分类:
编程语言 时间:
2015-07-20 16:35:14
阅读次数:
106