Loading

摘要: Cow Ski Area 把一个图变成一个强连通图 $tarjan$ 考虑 $tarjan$ 缩点之后形成若干个 $DAG$ 图,接下来就是将这若干个 $DAG$ 图连接起来 不难发现我们先让所有的图首尾相连(入度为 $0$ 和 出度为 $0$),使得所有的 $DAG$ 图可以互相到达(环) 接着如 阅读全文
posted @ 2022-08-12 15:20 dgsvygd 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 可达性 $tarjan$ 缩点 如果是 $DAG$ 图,则答案就是入度为 $0$ 的强连通分量中字典序最小的点组成的点集 因此直接缩点,然后维护每个强连通分量的最小字典序的点 #include <iostream> #include <cstdio> #include <stack> #includ 阅读全文
posted @ 2022-08-12 15:13 dgsvygd 阅读(17) 评论(0) 推荐(0) 编辑
摘要: Checkposts $tarjan$ 如果是 $DAG$ 图,则只用找入度为 $0$ 的点即可 因此考虑缩点后,找所有入度为 $0$ 的点 最小值则为,缩点后所有入度为 $0$ 的强连通块中,每个都拿一个代价最小的点 方案数为,在上述的强连通块,记录一下代价最小的点有多少个,全部相乘即可 因此 $ 阅读全文
posted @ 2022-08-12 14:21 dgsvygd 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 上白泽慧音 找一个点数量最大,且字典序最小的强连通块 $tarjan$ $tarjan$ 在跑的时候顺便维护一个连通块的数量 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include < 阅读全文
posted @ 2022-08-12 14:14 dgsvygd 阅读(38) 评论(0) 推荐(0) 编辑
摘要: Coin Collector 典中典题了属于是 $tarjan$ 缩点 + 记忆化搜索 或 $dp$ 如果是 $DAG$ 图,直接记忆化搜索或者 $dp$ 跑一边 考虑图中有强连通分量,先缩点后记忆化搜索 每个点的硬币最大值 $dp$ 为,其他能到该点的 $dp$ 最大值转移过来 #include 阅读全文
posted @ 2022-08-12 14:10 dgsvygd 阅读(98) 评论(0) 推荐(0) 编辑
摘要: Going from u to v or from v to u? 判断是不是弱连通图 $tarjan$ 缩点 + 拓扑 弱联通说明必须要有唯一的拓扑序,也就是拓扑的队列里始终只有一个 拓扑需要 $DAG$ 图,因此考虑 $tarjan$ 缩点后跑拓扑 #include <iostream> #in 阅读全文
posted @ 2022-08-12 14:06 dgsvygd 阅读(17) 评论(0) 推荐(0) 编辑
摘要: True Friends 判断所有强连通块的数量 tarjan 模板 #include <iostream> #include <cstdio> #include <algorithm> #include <stack> #include <vector> #include <string> usi 阅读全文
posted @ 2022-08-12 14:00 dgsvygd 阅读(32) 评论(0) 推荐(0) 编辑
摘要: Planets and Kingdoms 找出所有的点所属的强连通块编号 tarjan 模板 #include <iostream> #include <vector> #include <algorithm> #include <stack> using namespace std; const 阅读全文
posted @ 2022-08-12 13:58 dgsvygd 阅读(47) 评论(0) 推荐(0) 编辑
摘要: Flight Routes Check 判断是不是一个强连通图,如果不是,就找出不能到达的单程 tarjan 模板 判断不能到达的,直接从 $1$ 开始走一次搜索,如果与 $1$ 不同强连通块上的点,且 $1$ 能够到达那个点,显然答案就是从那个点到 $1$ 记得考虑整个图不连通的情况 #inclu 阅读全文
posted @ 2022-08-12 13:53 dgsvygd 阅读(92) 评论(0) 推荐(0) 编辑