Wannafly挑战赛14 C.可达性(模板)

博客介绍了牛客网Wannafly挑战赛中的C.可达性问题,该问题涉及含有环、自环的有向图。通过使用Tarjan算法对图中的环进行缩点,转换成不含环的有向图。接着,计算每个缩点的入度,入度为0的点即为答案。
摘要由CSDN通过智能技术生成

C.可达性

题目链接
题意:

给出一个 0 ≤ N ≤ 10 5 点数、0 ≤ M ≤ 10 5 边数的有向图,
输出一个尽可能小的点集,使得从这些点出发能够到达任意一点,如果有多个这样的集合,输出这些集合升序排序后字典序最小的。

ps:本题中,图中可能有环,自环,还可能是不连通图。

刚开始做的时候没找到模板,就上网直接搜了一个tarjan板子改了一下:题解

思路:先用tarjan算法对图中的环进行缩点,得到一个不含环的有向图。然后统计每一个缩点的入度为0的点即为答案。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 100000 + 10;
struct tarjan {     //tarjan模板
	int n;
	vector<int>e[maxn];    //边集
	int dfn[maxn];    //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值