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

2024/2/7 图的基础知识

图的存储

B3643 图的存储 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

思路:mp[n][n]用来存邻接矩阵,二维vector用来存每个点连的点

完整代码:

#include <bits/stdc++.h>
#define int long long
const int N = 1e5 + 10;
int n, m;
std::vector<std::vector<int>> g(N);
signed main() {std::cin >> n >> m;int mp[n + 10][n + 10];memset(mp, 0, sizeof(mp));for (int i = 0; i < m; i++) {int u, v;std::cin >> u >> v;g[u].push_back(v);//里面装的是u能到的点,u能到vg[v].push_back(u);//v能到ump[u][v] = 1;mp[v][u] = 1;}for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {std::cout << mp[i][j] << " ";}std::cout << "\n";}for (int i = 1; i <= n; i++) {std::sort(g[i].begin(), g[i].end());}for (int i = 1; i <= n; i++) {std::cout << g[i].size() << " ";for (int j = 0; j < g[i].size(); j++) {std::cout << g[i][j] << " ";}std::cout << "\n";}return 0;
}

图的遍历

P3916 图的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

思路:反向建图,用dfs确定每一个点最大可以到达哪一个点,然后按顺序输出

完整代码:

#include <bits/stdc++.h>
#define int long long
const int N = 1e5 + 10;
std::vector<std::vector<int>> g(N);
int vis[N];
void dfs(int x, int y) {if (vis[x] != 0)return;else {vis[x] = y;for (int i = 0; i < g[x].size(); i++) {dfs(g[x][i], y);}}
}
signed main() {int n, m;std::cin >> n >> m;for (int i = 1; i <= m; i++) {int u, v;std::cin >> u >> v;g[v].push_back(u);}for (int i = n; i >= 1; i--) {dfs(i, i);}for (int i = 1; i <= n; i++) {std::cout << vis[i] << " ";}return 0;
}

http://www.lryc.cn/news/296764.html

相关文章:

  • 1897_野火FreeRTOS教程阅读笔记_链表
  • CTFshow web(php命令执行 45-49)
  • 飞天使-linux操作的一些技巧与知识点8-zabbix6.0 容器搭建
  • 51 单片机入门 400 例
  • 贪心算法的应用
  • CentOS基于volatility2的内存取证实验
  • HLS 三角函数报错:undefined reference to ‘cordic_apfixed::circ_table_arctan_128‘
  • 【汇编】简单的linux汇编语言程序
  • Fink CDC数据同步(四)Mysql数据同步到Kafka
  • Adb offline疑难杂症解决方案大全记录
  • 详述FlinkSql Join操作
  • Ajax+JSON学习二
  • STM32单片机的基本原理与应用(六)
  • 《MySQL 简易速速上手小册》第4章:数据安全性管理(2024 最新版)
  • VUE学习之路——列表渲染
  • CentOS 安装 redis 7.2
  • 运维自动化bingo前端
  • Project2013下载安装教程,保姆级教程,附安装包和工具
  • 【机器学习与自然语言处理】预训练 Pre-Training 各种经典方法的概念汇总
  • Mac电脑如何通过终端隐藏应用程序?
  • linker list
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • 【开源】基于JAVA+Vue+SpringBoot的数据可视化的智慧河南大屏
  • 页面单跳转换率统计案例分析
  • 眸思MouSi:“听见世界” — 用多模态大模型点亮盲人生活
  • 电商小程序05用户注册
  • 什么是UI设计?
  • React 实现表单组件
  • PlantUML绘制UML图教程
  • 自学Python第二十二天- Django框架(六) django的实用插件:cron、APScheduler