蓝桥杯备赛 Day12.2图的遍历

devtools/2025/2/10 18:51:53/

P3916 图的遍历 - 洛谷 | 计算机科学教育新生态

题目描述

给出 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)。

  • 对于 60% 的数据,1≤N,M≤10^3。
  • 对于 100%的数据,1≤N,M≤10^5。
    #include<iostream>
    #include<vector>
    using namespace std;//本题是图的遍历(简单版)的数据加强版
    //本题数据规模较大,故图的空间和时间消耗较大,需要引入邻接表
    //另外当数据量超过1e5,建议使用scanf、printf进行IO优化
    //本题优化:反向建图,考虑较大的点能到达哪些点 
    const int N = 1e5 + 10;
    vector<int> g[N];//邻接表 
    int n, m;int cnt[N];//记录每个点能搜到的最远点 
    bool vis[N];//标记数组 //cur-当前点,  maxv-最远点 
    void dfs(int maxv, int cur) {if (cnt[cur]) return;//如果cur已经记录最远点,则直接结束 cnt[cur] = maxv; //记录cur的最远点maxv  cnt[3]=3  cnt[4]=4  cnt[2]=4 cnt[1]=4//沿着邻接点搜索 for (auto u : g[cur]) {dfs(maxv, u);}
    }int main() {cin >> n >> m;for (int i = 1; i <= m; i++) {int u, v; scanf("%d %d", &u, &v);g[v].push_back(u);//反向建图 }for (int i = n; i >= 1; i--) {dfs(i, i);//针对每个最远点搜索能到达的点 }for (int i = 1; i <= n; i++) printf("%d ", cnt[i]);return 0;
    }
    


http://www.ppmy.cn/devtools/157705.html

相关文章

es match 可查 而 term 查不到 问题分析

版本信息 elasticsearch-8.13.0 es 匹配逻辑 根本&#xff1a;es 的匹配是基于token 的。检索的query和目标字段在token 层级上有交集才能检索成功。对同样的文本&#xff0c;使用不同的分词器&#xff0c;所得token 不同。es 默认的analyzer(分词器)是standard模式&#xf…

《qt easy3d中添加孔洞填充》

《qt easy3d中添加孔洞填充》 效果展示一、创建流程二、核心代码效果展示 参考链接Easy3D开发——点云孔洞填充 一、创建流程 创建动作,并转到槽函数,并将动作放置菜单栏,可以参考前文 其中,槽函数on_actionHoleFill_triggered实现如下:

QUIC 与 UDP 关系

QUIC协议是建立在UDP之上的,这意味着QUIC的数据包实际上是通过UDP传输的。QUIC的设计使其能够利用UDP的特性,同时在其上实现更复杂的功能。以下是QUIC如何体现出其基于UDP的特性,以及QUIC头部字段的详细介绍。 QUIC与UDP的关系 UDP封装:QUIC数据包被封装在UDP数据包中进行…

微信小程序如何使用decimal计算金额

第三方库地址&#xff1a;GitHub - MikeMcl/decimal.js: An arbitrary-precision Decimal type for JavaScript 之前都是api接口走后端计算&#xff0c;偶尔发现这个库也不错&#xff0c;计算简单&#xff0c;目前发现比较准确 上代码 导入js import Decimal from ../../uti…

Linux性能优化实战,网络丢包问题分析

在当今数字化时代&#xff0c;无论是搭建服务器、开发网络应用&#xff0c;还是进行云计算部署&#xff0c;Linux 系统都扮演着举足轻重的角色。作为一名运维人员或开发者&#xff0c;你肯定希望自己的 Linux 系统能够高效稳定地运行。但当网络丢包问题出现时&#xff0c;一切都…

2025清华:DeepSeek从入门到精通.pdf(附下载)

本文是一份关于如何深入理解和使用DeepSeek技术的全面指南&#xff0c;由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室的余梦珑博士后及其团队编撰。DeepSeek是一家中国科技公司&#xff0c;专注于通用人工智能&#xff08;AGI&#xff09;的研发&#xff0c;其开源推…

如何将 Jupyter Notebook (.ipynb) 文件转换为 Python (.py) 文件

概要&#xff1a;编写python代码运行将.ipynb转化为.py import jsondef convert_ipynb_to_py(ipynb_file, py_file):with open(ipynb_file, r,encodingutf-8) as f:notebook json.load(f)with open(py_file, w,encodingutf-8) as f:for cell in notebook[cells]:if cell[cell…

爬虫学习笔记之requests库的使用

安装 pip3 install requests实例引入 urllib库中的urlopen方法实际上是以GET方法请求网页&#xff0c;requests库中相应的方法就是get方法。 示例1 import requestsr requests.get(https://www.baidu.com/) print(type(r)) print(r.status_code) print(type(r.text)) print(…