neuq-acm预备队训练week 9 P3916 图的遍历

题目描述

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

题目限制

输入格式

第 1 行 2 个整数N,M,表示点数和边数。

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

输出格式

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

输入输出样例

解题思路

这题可以反向建边和dfs

AC代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n,m,a[100010];
vector<int> g[100010];
void dfs(int x,int d);
int main()
{
    int u,v;
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>u>>v;
        g[v].push_back(u);
    }
    for(int i=n;i;i--)
        dfs(i,i);
    for(int i=1;i<=n;i++)
        printf("%d ",a[i]);
    return 0;
}
void dfs(int x,int d)
{
    if(a[x])
        return ;
    a[x]=d;
    for(int i=0;i<g[x].size();i++)
        dfs(g[x][i],d);
}
相关推荐
靠沿几秒前
贪心算法专题(二)
算法·贪心算法
猎头南楼36 分钟前
具身智能模型部署方向的能力要求与技术栈梳理
人工智能·深度学习·算法
啥都想学点的研究生2 小时前
一篇文章讲清楚:线性回归问题的求解——正规方程法
算法·机器学习·线性回归
青少儿编程课堂2 小时前
树状数组精讲:逆序对计数与离散化(附双语言解法)
算法·树状数组·离散化·信息学奥赛·逆序对
血小板要健康2 小时前
网格 dfs 与 FloodFill:从岛屿、区域到搜索路径
笔记·算法·leetcode·深度优先
VALENIAN瓦伦尼安教学设备3 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
小小晓.3 小时前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法
怕浪猫3 小时前
用了两年 AI 编程工具后,我重新理解了什么是「资深工程师」
算法·面试·架构
hetao17338374 小时前
2026-08-27~29 hetao1733837 的刷题记录
c++·算法
云淡风轻~窗明几净4 小时前
宇宙管理学猜想
算法·图论