提高:图论:强连通分量 图的遍历

时间限制 : 1 秒

内存限制 : 128 MB

给出 NN 个点,MM 条边的有向图,对于每个点 vv,求 A(v)A(v) 表示从点 vv 出发,能到达的编号最大的点。

输入

第 11 行 22 个整数 N,MN,M,表示点数和边数。

接下来 MM 行,每行 22 个整数 Ui,ViUi​,Vi​,表示边 (Ui,Vi)(Ui​,Vi​)。点用 1,2,...,N1,2,...,N 编号。

输出

一行 NN 个整数 A(1),A(2),...,A(N)A(1),A(2),...,A(N)。

样例
输入
复制代码
4 3
1 2
2 4
4 3
输出
复制代码
4 4 3 4
提示
  • 对于 60%60% 的数据,1≤N,M≤1031≤N,M≤103。
  • 对于 100%100% 的数据,1≤N,M≤1051≤N,M≤105。

---------------------------------------------------------------------------------------------------------------------------------代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+2;
int n,m,v[N];
vector<int>g[N];
void dfs(int x,int y)
{
	if(v[x]!=0) return;
	v[x]=y;
	for(int i=0;i<g[x].size();i++) dfs(g[x][i],y); 
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int a,b;
		cin>>a>>b;
		g[b].push_back(a);
	}
	for(int i=n;i>=1;i--)
	{
		dfs(i,i);
	}
	for(int i=1;i<=n;i++) cout<<v[i]<<" ";
	return 0;
}
相关推荐
大明者省9 小时前
WSL2 Ubuntu22.04 GPU训练环境配置指南
人工智能·算法·计算机视觉
白狐_79811 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander25811 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
ShineWinsu11 小时前
对于C++:C++11中lambda、function、bind的解析
c++·面试·笔试·开发·lambda·bind·function
码匠许师傅12 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
Shell运维手记12 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
杨航 AI12 小时前
O(n log n):线性对数原理拆解 这个是排序算法的黄金复杂度之一。
算法·排序算法
船厂电气自动化ai大模型13 小时前
AI大模型与数学 第32课 函数凹凸性与二阶导数:拐点求解、凹凸区间计算(10道二阶导数计算题)
数据结构·人工智能·python·深度学习·算法
旖旎夜光13 小时前
LeetCode 3:无重复字符的最长子串(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
汉字萌萌哒13 小时前
2024CSP-J入门级C++真题详解
开发语言·c++