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

【备战蓝桥杯】图的遍历问题

蓝桥杯备赛 | 洛谷做题打卡day10

文章目录

  • 蓝桥杯备赛 | 洛谷做题打卡day10
  • 图的遍历
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
    • 题解代码
    • 我的一些话

图的遍历

题目描述

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

输入格式

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

接下来 M M M 行,每行 2 2 2 个整数 U i , V i U_i,V_i Ui,Vi,表示边 ( U i , V i ) (U_i,V_i) (Ui,Vi)。点用 1 , 2 , … , N 1,2,\dots,N 1,2,,N 编号。

输出格式

一行 N N N 个整数 A ( 1 ) , A ( 2 ) , … , A ( N ) A(1),A(2),\dots,A(N) A(1),A(2),,A(N)

样例 #1

样例输入 #1

4 3
1 2
2 4
4 3

样例输出 #1

4 4 3 4

提示

  • 对于 60 % 60\% 60% 的数据, 1 ≤ N , M ≤ 1 0 3 1 \leq N,M \leq 10^3 1N,M103
  • 对于 100 % 100\% 100% 的数据, 1 ≤ N , M ≤ 1 0 5 1 \leq N,M \leq 10^5 1N,M105

题解代码

学会利用新知,自己多试试并尝试积攒一些固定解答方案,debug,以下是题解代码 ~

#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;

#define MAXL 100010

int N, M, A[MAXL];
vector<int> G[MAXL]; //vector存图 

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);
}

int main() {
	int u, v;
	scanf("%d%d", &N, &M);
	for(int i=1; i<=M; i++) {
		scanf("%d%d", &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]);
	printf("\n");
	return 0;
}

我的一些话

  • 今天给大家复习一下前几天初步入门的图论算法,关于图的遍历确实有一定难度,需要通盘的考虑和理解,以及扎实的数据结构基础才能独立写出AC代码。但无论难易,大家都要持续做题,保持题感喔!一起坚持(o´ω`o)

  • 如果有非计算机专业的uu自学的话,关于数据结构的网课推荐看b站上青岛大学王卓老师的课,讲的很细致,有不懂都可以私信我喔

  • 总结来说思路很重要,多想想,多在草稿纸上画画,用测试数据多调试,debug后成功编译并运行出正确结果真的会感到很幸福!

  • 关于之前蓝桥杯备赛的路线和基本方法、要掌握的知识,之前的博文我都有写,欢迎大家关注我,翻阅自取哦~

  • 不管什么都要坚持吧,三天打鱼两天晒网无法形成肌肉记忆和做题思维,该思考的时候一定不要懈怠,今天就说这么多啦,欢迎评论留言,一起成长:)

相关文章:

  • C++后端笔记
  • MetaGPT-打卡-day2,MetaGPT框架组件学习
  • CSS 浮动 定位
  • 算法训练营第五十二天|300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组
  • 软件工程研究生后期总结
  • 【Vue技巧】vue3中不支持.sync语法糖的解决方案
  • Flink启动Yarn Session报错:Couldn‘t deploy Yarn session cluster
  • 免费chartGPT网站汇总
  • Android aar包集成与报错
  • [python]裁剪文件夹中所有pdf文档并按名称保存到指定的文件夹
  • 写点东西《什么是网络抓取?》
  • 音乐人声分离工具:极简的人声和背景音乐分离工具
  • OB OCP工具
  • Linux消息队列
  • C盘满了,我用什么思路清理?
  • git add -u 什么意思
  • AEB滤镜再破碎,安全焦虑「解不开」?
  • Redis 持久化
  • 20个超实用的JavaScript高级技巧
  • 前端_we码
  • 上海虹桥国际咖啡文化节周五开幕,来看Coffeewalk通关攻略
  • 金正恩观摩朝鲜人民军各兵种战术综合训练
  • 首映|奥斯卡最佳国际影片《我仍在此》即将公映
  • 技术派|更强的带刀侍卫:从054B型战舰谈谈世界护卫舰发展
  • 大外交|中美联合声明拉升全球股市,专家:中美相向而行为世界提供确定性
  • 科普|“小”耳洞也会引发“大”疙瘩,如何治疗和预防?