上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页
摘要: 距离B - Distance in the Tree 还是普通的LCA但是要求的是两个节点之间的距离,学到了一些 一开始我想用带权并查集进行优化,但是LCA合并的过程晚于离线计算的过程,所以路径长度会有所偏差 所以失败告终 网上查询之后懂得要提前进行一下预处理,在输入完全部的边之后,也就是数形成之后 阅读全文
posted @ 2018-08-06 18:52 Butterflier 阅读(195) 评论(0) 推荐(0) 编辑
摘要: LCA tarjan+并查集POJ1470 https://www.cnblogs.com/JVxie/p/4854719.html 不错的一篇博客啊,让我觉得LCA这么高大上的算法不是很难啊,嘻嘻嘻 这是个离线算法,现在的粗略理解是输入完毕询问完毕后进行解决的算法 用了并查集 1···选取根节点 阅读全文
posted @ 2018-08-05 21:20 Butterflier 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 找了找A题比较多的牛客水体来做,还是挺困难 第一题灯塔 十字分布比较好判断 maxx,miny||minx,miny ———————————— maxx,maxy||minx,maxy 是这么的分布 所以只需要寻找有没有这样的点即可 那成四十五度歇着的框怎么办呢 原来只需要旋转一下,求出对应旋转后的 阅读全文
posted @ 2018-08-05 15:21 Butterflier 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 部分内容引自https://www.cnblogs.com/stxy-ferryman/p/7779347.html Tarjan算法不是一个算法而是一类算法 1.求取强连通分量 强连通分量————有向图的强连通子图 tarjan算法基于dfs,利用栈的思想,把下面所有的点都遍历完毕后,所能链接的最 阅读全文
posted @ 2018-08-03 16:11 Butterflier 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 做题时又遇到了疑惑,说明一开始就没有完全理解 基于dfs的tarjan,搜索时会有四种边 树枝边:DFS 时经过的边,即 DFS 搜索树上的边 前向边:与 DFS 方向一致,从某个结点指向其某个子孙的边 后向边:与 DFS 方向相反,从某个结点指向其某个祖先的边 横叉边:从某个结点指向搜索树中另一子 阅读全文
posted @ 2018-08-03 10:02 Butterflier 阅读(172) 评论(0) 推荐(0) 编辑
摘要: poj2186tarjan算法缩点求出度 自己打一遍第一题,入门啦,入门啦 题目还算简单,多头牛,给你仰慕关系(可传递),问你最后有没有牛被所有的牛仰慕 根据关系可以建图,利用tarjan算法缩点处理后,得到有向无环图,缩成的点都是相互仰慕的,所以根据传递性也就是可以看成一个点了,然后染色分块,计算 阅读全文
posted @ 2018-08-02 16:30 Butterflier 阅读(168) 评论(0) 推荐(0) 编辑
摘要: POJ3177tarjan缩点_构建双连通图 根据题意利用tarjan算法进行缩点处理后变成连通无环图,也可以说是一颗树,而且边是双向的所以,如果把这个图变成双连通,那就要对所有度为1的点进行加边处理 所以步骤如下 1·tarjan缩点处理 void tarjan(int u,int pre) { 阅读全文
posted @ 2018-08-02 14:39 Butterflier 阅读(225) 评论(0) 推荐(0) 编辑
摘要: poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数 题目大意:如题目所示 给你一些关系图——连通图,想要问你有没有个节点,损坏后,可以生成几个互相独立的网络(也就是连通分量),所以我们利用tarjan算法,求取一个联通分量的点,记录次数,因为访问几次,就代表这个点的不同方向上 阅读全文
posted @ 2018-08-02 10:47 Butterflier 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥 也就是说 无向连通图中,如果删除某边后,图变成不连通,则称该边为桥 2.割点:无向连通图中,如果删除某点后,图变成不连通,则称该点为割点。 求取割点: 1》当前节点为树根的时候,条件是“要有多余 阅读全文
posted @ 2018-08-01 19:56 Butterflier 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 正常spfa中加入time数组,循环判断一个点是否入队并更新了n次以上注意是 > n!!其余的没有什么问题 扩展的还有,寻找所有负环上的点,这个可以在spfa中time 发现负环的时候,对那个点进行dfs操作,找到所有的负环上的点即可 void dfs(int u) { cir[u] = 1; fo 阅读全文
posted @ 2018-08-01 09:02 Butterflier 阅读(249) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页