当前位置: 首页 > news >正文

洛谷B3862:图的遍历(简单版)← 链式前向星

【题目来源】
https://www.luogu.com.cn/problem/B3862

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

【输入格式】
第 1 行 2 个整数N,M,表示点数和边数。
接下来 M 行,每行 2 个整数 Ui,Vi,表示边(Ui, Vi)。点用 1, 2, …, N 编号。

【输出格式】
一行 N 个整数 A(1), A(2), …, A(N)。

【数据范围】
对于 100% 的数据,1≤N,M≤10^3。

【输入样例】
4 3
1 2
2 4
4 3

【输出样例】
4 4 3 4

【算法分析】
● yxc 图示“链式前向星”核心操作:https://blog.csdn.net/hnjzsyjyj/article/details/139369904
大佬 yxc 指出“
链式前向星”就是“多单链表”,每条单链表基于“头插法”并用 e[]、ne[]、h[] 、val[] 等数组进行模拟创建。其中:
e[idx]:存储序号为 idx 的边的终点值
ne[idx]:存储序号为 idx 的边指向的边的序号(模拟链表指针)‌
h[a]:存储头结点 a 指向的边的序号
val[idx]:存储序号为 idx 的边的权值(可选)

● 可见,链式前向星‌的‌本质是“
以边为中心”组织存储。每个边结点由 val[idx](可选)、e[idx]、ne[idx] 构成。

虽说是边结点,但在每条单链表的各边结点中,e[idx] 存储的是与此单链表头结点共顶点的多条边的终点值(在不选 val[] 的前提下)。

【算法代码】

#include<bits/stdc++.h>
using namespace std;const int N=1e5+5;
int h[N],e[N],ne[N],idx;
int mx[N];
int n,m;void add(int a,int b) {e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}void dfs(int u,int v) {mx[v]=u;for(int i=h[v]; i!=-1; i=ne[i]) {if(mx[e[i]]==0) dfs(u,e[i]);}
}int main() {memset(h,-1,sizeof(h));cin>>n>>m;while(m--) {int x,y;cin>>x>>y;add(y,x); //Build reverse edges}for(int i=n; i>=1; i--) {if(mx[i]==0) dfs(i,i);}for(int i=1; i<=n; i++) {cout<<mx[i]<<" ";}return 0;
}/*
in:
4 3
1 2
2 4
4 3out:
4 4 3 4
*/




【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/139369904
https://blog.csdn.net/hnjzsyjyj/article/details/147326357
https://blog.csdn.net/hnjzsyjyj/article/details/147333181
https://www.acwing.com/solution/content/3999/

https://blog.csdn.net/WARCRANE/article/details/145482132



 

相关文章:

  • 结构体详解
  • 《AI大模型应知应会100篇》第27篇:模型温度参数调节:控制创造性与确定性
  • 致远OA——数据回填表单
  • 工业物联网安全网关 —— 安全OTA升级签名验证
  • 回溯算法(3):番外篇
  • 【web服务_负载均衡Nginx】三、Nginx 实践应用与高级配置技巧
  • 上海市计算机学会竞赛平台2023年7月月赛丙组题目解题报告
  • Java中常见的锁synchronized、ReentrantLock、ReentrantReadWriteLock、StampedLock
  • 【机器学习】朴素贝叶斯算法:原理剖析与实战应用
  • 深度补全网络:如CSPN++填补稀疏点云的深度信息
  • 修改 <li> 元素小圆点的颜色
  • 不连续数据区间天数累计sql
  • 手机投屏到电视方法
  • MongoDB导出和导入数据
  • 【大疆dji】边缘计算模块在大疆机场中的位置
  • Datawhale AI春训营】AI + 新能源(发电功率预测)Task1
  • nohup的使用
  • 2025年第16届蓝桥杯嵌入式竞赛学习笔记(十四):RTC实时时钟
  • ESB —— 企业集成架构的基石:功能、架构与应用全解析
  • 详细解释浏览器是如何渲染页面的?
  • 中国乒乓球队公示多哈世乒赛参赛名单,王楚钦孙颖莎混双重组
  • 深一度|中国花样滑冰因何大滑坡
  • 上海明天有雷雨、大风,下周气温在春日舒适区间
  • 商务部新闻发言人就美对我海事、物流和造船等领域宣布最终措施答记者问
  • 上海浦东:顶尖青年人才最高可获700万元资助及1亿元项目补贴
  • 国常会:要持续稳定股市,持续推动房地产市场平稳健康发展