随笔分类 -  tarjan

摘要:题面:洛谷传送门 题目算法要素:tarjan+树形dp 题目分析: 一、总体概括 可以发现一个环中的点必须同时被选择,因此很容易能想到要tarjan缩点。 缩点后形成一张DAG,由于题目的条件,d[i]=0表示一个软件没有另一个软件为前提,因此有一个超级源点0。可以考虑从0点开始,跑一遍树形dp(树 阅读全文
posted @ 2021-09-17 09:20 Mint-hexagram 阅读(252) 评论(0) 推荐(0)
摘要:#全篇重点(奇怪的bug): ####tarjan缩点+topo排序求最长链的常见问题: (1)建新图的时候没有用缩点后生成的新点,而是用原来的点建图 (2)建新图的时候注意不要建重复的边,最好用并查集维护两个新点是否被连接过 ✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧✧ 阅读全文
posted @ 2021-09-16 16:48 Mint-hexagram 阅读(44) 评论(0) 推荐(0)
摘要:第一次写缩点是用vector存边,因此现在用链前存边再写一遍 传送门:P3387 【模板】缩点 题意分析 (1)很容易发现,由于每一个点可以被经过多次,那么同一个强连通分量中的每一个点都可以互相到达,因此可以看作一个点。 (2)缩点后,整张图一定变成了一个DAG 证明:反证即可,假设不是DAG,则有 阅读全文
posted @ 2021-09-04 14:11 Mint-hexagram 阅读(52) 评论(0) 推荐(0)
摘要:dfn[now]表示在now点在dfs搜索树中的dfs序。 low[now]表示的是now通过后向边、横叉边能到达的dfn最小的点的dfs序。 我们取一个强连通分量中dfn最小的点作为整个强连通分量的代表元素。 因此low[now]的实际意义就是now所在的强连通分量的代表元素的点的dfn值。 to 阅读全文
posted @ 2021-08-22 15:47 Mint-hexagram 阅读(60) 评论(0) 推荐(0)