【题目大意】 给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过?(一个点在路径中无论出现多少正整数次对答案的贡献均为1) 【思路】 首先缩点,对于每一个联通块求出正图和反图中节点1所在的联通块到它的最长节点数。这个用拓扑排序处理一下。 ...
分类:
其他好文 时间:
2016-09-27 00:23:36
阅读次数:
206
bzoj1589[Usaco2008 Dec]Trick or Treat on the Farm 采集糖果 题意: n个节点,每个节点有一个后继节点,问从每个节点出发能到多少个没去过的节点。n≤100000。 题解: 因为每个节点只有一个后继节点,所有tarjan缩点后就会变成一堆链,对每条链df ...
分类:
其他好文 时间:
2016-09-25 17:22:45
阅读次数:
155
一种由Robert Tarjan提出的求解有向图强连通分量的线性时间的算法。 Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树。搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断栈顶到栈中的节点是否为一个强连通分量。 定义dfn(u)为节点u搜索的次序编号 ...
分类:
编程语言 时间:
2016-09-25 10:46:16
阅读次数:
352
1123: [POI2008]BLO Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通。 Byteotia城市有n个 towns m条双向roads. 每条 road 连接 ...
分类:
其他好文 时间:
2016-09-25 08:28:57
阅读次数:
183
2730: [HNOI2012]矿场搭建 Description 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口 ...
分类:
其他好文 时间:
2016-09-24 20:21:02
阅读次数:
174
【算法】(强连通分量)并查集 【题解】 1.用tarjan计算强连通分量并缩点,在新图中找入度为0的点的个数就是答案。 但是,会爆内存(题目内存限制64MB)。 2.用并查集,最后从1到n统计fa[i]==i的数量即是答案。 (tarjan) #include<cstdio> #include<al ...
分类:
其他好文 时间:
2016-09-23 20:06:01
阅读次数:
133
敲了一道lca的模板题目; 第一次用倍增写的,很好写,没调试几下交了就AC了; 接下来想学习tarjan的离线lca方法; 期间出了一个bug,问题很难找到; 最后我发现是在宏定义那里出了问题,导致地址越界,一直re; 最后交了发现速度和倍增的差不了多少; 难受; ...
分类:
其他好文 时间:
2016-09-23 14:42:52
阅读次数:
147
【算法】强连通分量(tarjan)+拓扑排序+状态压缩(bitset) 【题解】 1.强连通分量(scc)内所有点可互达,对答案的贡献为cnt[i]*cnt[i](cnt[i]第i个scc内点的个数),在第四步顺便计算即可,不用单独计算。 2.缩点得到新图,对新图中的每一个点开一个bitset[20 ...
分类:
Web程序 时间:
2016-09-21 23:05:09
阅读次数:
211
题意:找一张图中的最小环 O(n) 思路:强连通分量tarjan即可 注意环中节点数>1 ...
分类:
其他好文 时间:
2016-09-21 21:36:17
阅读次数:
135