在一个图里找是否存在环,采用tarjan的思想 cpp bool FindCir(int u) { if (instk[u]) return 1; if (vis[u]) return 0; vis[u] = instk[u] = 1; for (register int i = 0; i ...
分类:
其他好文 时间:
2019-03-08 22:11:56
阅读次数:
184
题目链接:http://poj.org/problem?id=1144 描述 一个电话线公司(简称TLC)正在建立一个新的电话线缆网络。他们连接了若干个地点分别从1到N编号。没有两个地点有相同的号码。这些线是双向的并且能使两个地点保持通讯。每个地点的线都终结于电话交换机。每个地点都有一个电话交换机。 ...
分类:
其他好文 时间:
2019-03-03 20:18:45
阅读次数:
393
题目链接: "戳我" 如果成环的话,显然是要么里面的点一个都不选,要么全部都选qwqwq,那么我们可以将环先tarjan处理一下,将其缩成一个点。qwq(处理技巧还是比较新奇的,详情见代码) 开始先不要和0连,处理好再连。这样之后就是一个以0为根的树形结构了qwqwq。 设$dp[i][j]$表示以 ...
分类:
其他好文 时间:
2019-03-01 19:56:28
阅读次数:
225
题目链接 "P3387 【模板】缩点" 解题思路 这几天搞图论,好有趣hhh,多写几篇博客。 上次学$Tarjan$求割点,这次缩点。 思路大概是多一个栈和染色的步骤,每次$Tarjan$的时候把点入栈,如果某个点(比较像割点但不完全是)的$DFS$子树都搜不到它祖宗,那么接下来进行的遍历操作必然与 ...
分类:
其他好文 时间:
2019-02-27 16:15:32
阅读次数:
190
正解其实是$Tarjan$ + $拓扑拓扑$,但是却可以被$O(N^3 / 32)$复杂度的传递闭包水过去。心疼一下写拓扑的小可爱们。 学到一个$bitset$优化布尔图的骚操作,直接压进去乱搞,能快不是一点。 (基本上就是差了一个$log$) 先放代码。 cpp include using nam ...
分类:
Web程序 时间:
2019-02-27 01:15:52
阅读次数:
194
强连通分量 定义:有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连 ...
分类:
其他好文 时间:
2019-02-25 18:50:51
阅读次数:
160
追捕盗贼(COCI2007) Description 为了帮助警察抓住在逃的罪犯,你发明了一个新的计算机系统。警察控制的区域有N个城市,城市之间有E条双向边连接,城市编号为1到N。 警察经常想在罪犯从一个城市逃亡另一个城市的过程中抓住他。侦查员在仔细研究地图,以决定在哪个城市设置障碍,或者断掉某条路 ...
分类:
编程语言 时间:
2019-02-25 15:21:32
阅读次数:
168
主要的方法都写在注释里面了。 用Tarjan跑出割点,然后DFS搜索所有的联通快 计算每一个联通快中的割点数目 分类讨论: 如果没有割点 至少需要建立两个出口 从任意非割点的地方选择两个点建立 如果这个分组只有一个割点 只需要在分组内设立一个出口 可以设立在任意一个非割点的地方 如果有两个及以上个割 ...
分类:
其他好文 时间:
2019-02-24 13:49:46
阅读次数:
141
这个题是tarjan裸题。最后bfs暴力找联通块就行。(一开始完全写错了竟然得了70分,题意都理解反了。。。这数据强度。。。) 题干: 代码: ...
分类:
其他好文 时间:
2019-02-24 11:04:10
阅读次数:
198
http://poj.org/problem?id=3180 ...
分类:
其他好文 时间:
2019-02-23 10:51:03
阅读次数:
162