
----------图论----------
文章平均质量分 69
IcePrincess_1968
这个作者很懒,什么都没留下…
展开
-
POJ1392: Ouroboros Snake 题解
DescriptionOuroboros is a mythical snake from ancient Egypt. It has its tail in its mouth and continously devours itself.The Ouroboros numbers are binary numbers of 2^n bits that have the property...原创 2018-07-15 18:04:47 · 486 阅读 · 0 评论 -
URAL1627: Join 题解
把地图看成去掉障碍物的网格图,就可以用矩阵树定理直接算生成树个数了 矩阵树定理: 一个无向图的度数矩阵:di,j=degidi,j=degid_{i,j}=deg_i当且仅当i=ji=ji=j 一个无向图的邻接矩阵:Ai,j=1Ai,j=1A_{i,j}=1当且仅当从iii到jjj有边 一个无向图的基尔霍夫矩阵:Ki,j=di,j−Ai,jKi,j=di,j−Ai,jK_{i,j}=d_{...原创 2018-06-23 08:37:17 · 352 阅读 · 0 评论 -
BZOJ1143: 祭祀 题解
这是一道结论题 题目抽象一下就是要在一个DAG上求一个最大点集,使得两两不可达 上网搜了一下,这个东西叫做最长反链 根据Dilworth定理,最长反链=最小链覆盖 最小链覆盖可以这样搞:我们先把图的传递闭包求一下,这个可以用floyd,然后建一个二分图,如果a–>b有边,就从左边的a向右边的b连一条边 求一个最大匹配,然后用n减一下就是答案了 可以这样理解:刚开始我有n条链,每条...原创 2018-06-07 22:30:53 · 561 阅读 · 1 评论 -
(权限题) NFLSoj #105: Merging 题解
这道题是codeforces #51F 的数据加强版 感觉应该是状压dp什么的,但数据范围达到了2e4,不得不从其他角度考虑 我们可以发现一些性质:题目最后要形成的是一棵树,那么考虑如果原图中有一个环,那么如果这个环最后没有被缩成一个点,那么始终是不符合题意的,进一步可以发现,这个性质实际上是属于边双联通分量的,所以我么可以先跑一边tarjan,把边双联通分量拉出来缩点,这样原图就变成了一个森...原创 2018-03-30 20:40:45 · 458 阅读 · 0 评论 -
UVa12661: Funny Car Racing 题解
这题仍然可以跑dijkstra,只是在通过边的时候边的权值不再是通过时间,还要通过数学计算加上一些等待时间#include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl原创 2017-08-06 18:18:29 · 364 阅读 · 0 评论 -
UVa10048: Audiophbia 题解
可以用很类似于floyd的方法来做枚举中间点,然后ga[i][k],ga[k][j]求max后再与ga[i][j]求min#include #include #include #include #include #include #include #include #include #include #include #include #include #incl原创 2017-08-04 14:22:49 · 244 阅读 · 0 评论 -
UVa247: Calling Circles 题解
有很多算法是用floyd求传递闭包但感觉裸的tarjan效率更高#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define x firs原创 2017-08-04 14:08:34 · 358 阅读 · 0 评论 -
POJ3713: Transferring Sylla 题解
如果任意两个顶点之间都有至少三条没有重复顶点的路径,那么这个图中任意删除两个顶点,一定还是连通的。这是充要条件,非常重要朴素想法是枚举删除哪两个点,再跑一遍dfs。但这样是O(n*n*m)的,会超时可以枚举删除那个点,再用tarjan判断有没有割点这样就是O(n*m)的,可以通过有考虑多网络流的方法因为任意点都不能重复走两次,然后就考虑拆点,拆成in和out,然后之间连一条流量为1原创 2017-07-26 13:41:20 · 411 阅读 · 0 评论 -
Tarjan求割点
1. 割点与连通度在无向连通图中,删除一个顶点v及其相连的边后,原图从一个连通分量变成了两个或多个连通分量,则称顶点v为割点,同时也称关节点(Articulation Point)。一个没有关节点的连通图称为重连通图(biconnected graph)。若在连通图上至少删去k 个顶点才能破坏图的连通性,则称此图的连通度为k。关节点和重连通图在实际中较多应用。显然,一个表示通信转载 2017-07-24 17:50:31 · 503 阅读 · 0 评论